Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions assets/src/css/_layout.scss
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.bk-wrap {
.b8-wrap {
box-sizing: border-box;
position: relative;
clear: both;
Expand All @@ -10,15 +10,15 @@
}
}

.bk-navbar {
.b8-navbar {
margin: 0 0 1em;

+ .subsubsub {
margin: -8px 0 0;
}
}

.bk-poststuff {
.b8-poststuff {
margin-top: 10px;
margin-right: 340px;

Expand Down Expand Up @@ -51,7 +51,7 @@
}
}

.bk-card {
.b8-card {
background: #fff;
border: 1px solid #e1e2e2;
box-sizing: border-box;
Expand Down
4 changes: 2 additions & 2 deletions assets/src/css/admin.scss
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
@forward "layout"; // TODO: remove when the old card (bk) is removed
.bk-card, // TODO: remove when the old card (bk) is removed
.b8-card, // TODO: remove when the old card (bk) is removed
.b8-card {
&.promo-panel{
background: #2563eb;
.bk-card__header,
.b8-card__header,
.b8-card__header {
color: #fff;
background: #1048c4;
Expand Down
21 changes: 7 additions & 14 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,18 @@
{
"type": "vcs",
"url": "git@github.com:byteever/plugin.git"
},
{
"type": "vcs",
"url": "git@github.com:byteever/bytekit-settings.git"
}
],
"require": {
"php": ">=7.4",
"byteever/plugin": "dev-trunk",
"byteever/bytekit-settings": "dev-trunk"
"byteever/plugin": "^1.0"
},
"require-dev": {
"byteever/byteever-sniffs": "^1.1.3"
},
"autoload": {
"psr-4": {
"WooCommerceMinMaxQuantities\\": "includes/"
"PluginEver\\MinMaxQuantities\\": "includes/"
}
},
"config": {
Expand All @@ -43,19 +38,17 @@
"strauss": [
"test -f /tmp/strauss.phar || curl -o /tmp/strauss.phar -L https://github.com/BrianHenryIE/strauss/releases/download/0.24.1/strauss.phar",
"@php /tmp/strauss.phar",
"@composer dump-autoload --no-scripts",
"find ./vendor/byteever -type f -name '*.php' -exec perl -i -pe \"s/'bytekit-textdomain'/'wc-min-max-quantities'/g\" {} +"
"@composer dump-autoload --no-scripts"
]
},
"extra": {
"strauss": {
"target_directory": "vendor",
"namespace_prefix": "WooCommerceMinMaxQuantities\\",
"classmap_prefix": "WooCommerceMinMaxQuantities__",
"namespace_prefix": "PluginEver\\MinMaxQuantities\\",
"classmap_prefix": "PluginEver_MinMaxQuantities__",
"packages": [
"byteever/plugin",
"byteever/bytekit-settings"
"byteever/plugin"
]
}
}
}
}
15 changes: 9 additions & 6 deletions includes/Admin/Actions.php
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
<?php

namespace WooCommerceMinMaxQuantities\Admin;
namespace PluginEver\MinMaxQuantities\Admin;

use PluginEver\MinMaxQuantities\B8\Component;

defined( 'ABSPATH' ) || exit;

/**
* Class Admin
*
* @package WooCommerceMinMaxQuantities\Admin
* @package PluginEver\MinMaxQuantities\Admin
* @since 1.1.4
*/
class Actions {
class Actions extends Component {

/**
* Actions constructor.
* Register hooks.
*
* @since 1.1.4
* @since 2.3.0
* @return void
*/
public function __construct() {
public function register(): void {
add_action( 'woocommerce_process_product_meta', array( __CLASS__, 'save_product_meta' ) );
}

Expand Down
145 changes: 96 additions & 49 deletions includes/Admin/Admin.php
Original file line number Diff line number Diff line change
@@ -1,40 +1,55 @@
<?php

namespace WooCommerceMinMaxQuantities\Admin;
namespace PluginEver\MinMaxQuantities\Admin;

use PluginEver\MinMaxQuantities\B8\Component;

defined( 'ABSPATH' ) || exit;

/**
* Class Admin
* Handles the plugin admin.
*
* @since 1.1.4
* @package WooCommerceMinMaxQuantities\Admin
* @since 1.1.4
* @package PluginEver\MinMaxQuantities\Admin
*/
class Admin {
class Admin extends Component {

/**
* Admin constructor.
* Child components.
*
* @since 1.1.4
* @since 2.3.0
* @var array<int|string, class-string>
*/
public function __construct() {
add_action( 'init', array( $this, 'init' ), 1 );
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
add_action( 'admin_menu', array( $this, 'settings_menu' ), 55 );
add_filter( 'woocommerce_screen_ids', array( $this, 'screen_ids' ) );
add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), PHP_INT_MAX );
add_filter( 'update_footer', array( $this, 'update_footer' ), PHP_INT_MAX );
public array $components = array(
Menu::class,
MetaBoxes::class,
Actions::class,
Notices::class,
);

/**
* Whether to load.
*
* @since 2.3.0
* @return bool
*/
public function autoload(): bool {
return is_admin();
}

/**
* Init.
* Register hooks.
*
* @since 1.1.4
* @since 2.3.0
* @return void
*/
public function init() {
wc_min_max_quantities()->share( Settings::instance() );
wc_min_max_quantities()->make( MetaBoxes::class );
wc_min_max_quantities()->make( Actions::class );
wc_min_max_quantities()->make( Notices::class );
public function register(): void {
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
add_filter( 'woocommerce_screen_ids', array( $this, 'screen_ids' ) );
add_filter( 'admin_footer_text', array( $this, 'admin_footer_text' ), PHP_INT_MAX );
add_filter( 'update_footer', array( $this, 'update_footer' ), PHP_INT_MAX );
add_filter( 'plugin_action_links_' . $this->app->basename(), array( $this, 'plugin_action_links' ) );
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
}

/**
Expand All @@ -43,25 +58,10 @@ public function init() {
* @param string $hook Hook name.
*
* @since 1.1.4
* @return void
*/
public function enqueue_scripts( $hook ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
wc_min_max_quantities()->scripts->enqueue_style( 'wcmmq-admin', 'css/admin.css', array( 'b8-layout', 'b8-components' ) );
}

/**
* Add menu item.
*
* @since 1.1.0
*/
public function settings_menu() {
add_submenu_page(
'woocommerce',
__( 'Min Max Quantities Settings', 'wc-min-max-quantities' ),
__( 'Min Max Quantities', 'wc-min-max-quantities' ),
'manage_options',
'wc-min-max-quantities',
array( Settings::class, 'output' )
);
$this->app->scripts->enqueue_style( 'wcmmq-admin', 'css/admin.css', array( 'b8-layout', 'b8-components' ) );
}

/**
Expand All @@ -70,10 +70,13 @@ public function settings_menu() {
*
* @param array $ids Screen ids.
*
* @since 1.1.4
* @return array
*/
public function screen_ids( $ids ) {
return array_merge( $ids, self::get_screen_ids() );
$screen_ids = apply_filters( 'wc_min_max_quantities_screen_ids', $this->app->get( Menu::class )->get_screen_ids() );

return array_merge( $ids, $screen_ids );
}

/**
Expand All @@ -85,12 +88,14 @@ public function screen_ids( $ids ) {
* @return string
*/
public function admin_footer_text( $footer_text ) {
if ( wc_min_max_quantities()->review_url && in_array( get_current_screen()->id, self::get_screen_ids(), true ) ) {
$screen = get_current_screen();

if ( $screen && $this->app->review_url && in_array( $screen->id, $this->app->get( Menu::class )->get_screen_ids(), true ) ) {
$footer_text = sprintf(
/* translators: 1: Plugin name 2: WordPress */
__( 'Thank you for using %1$s. If you like it, please leave us a %2$s rating. A huge thank you from PluginEver in advance!', 'wc-min-max-quantities' ),
'<strong>' . esc_html__( 'Min Max Quantities', 'wc-min-max-quantities' ) . '</strong>',
'<a href="' . esc_url( wc_min_max_quantities()->review_url ) . '" target="_blank" class="wc-min-max-quantities-rating-link" data-rated="' . esc_attr__( 'Thanks :)', 'wc-min-max-quantities' ) . '">&#9733;&#9733;&#9733;&#9733;&#9733;</a>'
'<a href="' . esc_url( $this->app->review_url ) . '" target="_blank" class="wc-min-max-quantities-rating-link" data-rated="' . esc_attr__( 'Thanks :)', 'wc-min-max-quantities' ) . '">&#9733;&#9733;&#9733;&#9733;&#9733;</a>'
);
}

Expand All @@ -106,25 +111,67 @@ public function admin_footer_text( $footer_text ) {
* @return string
*/
public function update_footer( $footer_text ) {
if ( in_array( get_current_screen()->id, self::get_screen_ids(), true ) ) {
$screen = get_current_screen();

if ( $screen && in_array( $screen->id, $this->app->get( Menu::class )->get_screen_ids(), true ) ) {
/* translators: 1: Plugin version */
$footer_text = sprintf( esc_html__( 'Version %s', 'wc-min-max-quantities' ), wc_min_max_quantities()->version );
$footer_text = sprintf( esc_html__( 'Version %s', 'wc-min-max-quantities' ), $this->app->version );
}

return $footer_text;
}

/**
* Get screen ids.
* Add plugin action links.
*
* @since 1.1.4
* @param array $links The plugin action links.
*
* @since 2.0.3
* @return array
*/
public function plugin_action_links( $links ) {
$plugin_links = array(
'settings' => sprintf(
'<a href="%s">%s</a>',
esc_url( (string) $this->app->settings_url ),
esc_html__( 'Settings', 'wc-min-max-quantities' )
),
);

if ( ! $this->app->is_pro_active() ) {
$plugin_links['go_pro'] = '<a href="https://pluginever.com/plugins/woocommerce-min-max-quantities-pro/" target="_blank" style="color: #39b54a; font-weight: bold;">' . esc_html__( 'Go Pro', 'wc-min-max-quantities' ) . '</a>';
}

return array_merge( $plugin_links, $links );
}

/**
* Add plugin row meta links.
*
* @param array $links Plugin row meta links.
* @param string $file Plugin file.
*
* @since 2.2.4
* @return array
*/
public static function get_screen_ids() {
$screen_ids = array(
'woocommerce_page_wc-min-max-quantities',
public function plugin_row_meta( $links, $file ) {
if ( $this->app->basename() !== $file ) {
return $links;
}

$row_meta = array(
'docs' => sprintf(
'<a href="%s" target="_blank">%s</a>',
esc_url( (string) $this->app->docs_url ),
esc_html__( 'Documentation', 'wc-min-max-quantities' )
),
'support' => sprintf(
'<a href="%s" target="_blank">%s</a>',
esc_url( (string) $this->app->support_url ),
esc_html__( 'Support', 'wc-min-max-quantities' )
),
);

return apply_filters( 'wc_min_max_quantities_screen_ids', $screen_ids );
return array_merge( $links, $row_meta );
}
}
Loading
Loading