diff --git a/assets/css/admin/.gitkeep b/assets/css/admin/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/assets/css/frontend/.gitkeep b/assets/css/frontend/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/assets/css/halloween.scss b/assets/css/halloween.scss deleted file mode 100644 index ca9ff880..00000000 --- a/assets/css/halloween.scss +++ /dev/null @@ -1,24 +0,0 @@ -.wcsn-halloween{ - background-color: #ffffff!important; - padding: 0 20px; - &__header{ - display: flex; - align-items: center; - gap: 1rem; - } - &__title{ - font-size: 1.5rem; - font-weight: 600; - } - &__icon{ - width: 100%; - max-width: 100px; - img{ - width: 100%; - height: auto; - } - } - &__content{ - width: 100%; - } -} diff --git a/assets/images/halloween-icon.svg b/assets/images/halloween-icon.svg deleted file mode 100644 index 35eb11b0..00000000 --- a/assets/images/halloween-icon.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/composer.lock b/composer.lock index cf19eb26..7664ece0 100644 --- a/composer.lock +++ b/composer.lock @@ -914,16 +914,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.3", + "version": "3.11.1", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "62d32998e820bddc40f99f8251958aed187a5c9c" + "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c", - "reference": "62d32998e820bddc40f99f8251958aed187a5c9c", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", + "reference": "19473c30efe4f7b3cd42522d0b2e6e7f243c6f87", "shasum": "" }, "require": { @@ -990,20 +990,20 @@ "type": "open_collective" } ], - "time": "2024-09-18T10:38:58+00:00" + "time": "2024-11-16T12:02:36+00:00" }, { "name": "symfony/console", - "version": "v5.4.45", + "version": "v5.4.47", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "108d436c2af470858bdaba3257baab3a74172017" + "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/108d436c2af470858bdaba3257baab3a74172017", - "reference": "108d436c2af470858bdaba3257baab3a74172017", + "url": "https://api.github.com/repos/symfony/console/zipball/c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", + "reference": "c4ba980ca61a9eb18ee6bcc73f28e475852bb1ed", "shasum": "" }, "require": { @@ -1073,7 +1073,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.45" + "source": "https://github.com/symfony/console/tree/v5.4.47" }, "funding": [ { @@ -1089,7 +1089,7 @@ "type": "tidelift" } ], - "time": "2024-10-08T07:27:17+00:00" + "time": "2024-11-06T11:30:55+00:00" }, { "name": "symfony/deprecation-contracts", diff --git a/includes/Admin/Orders.php b/includes/Admin/Orders.php index 15e24a87..dd135693 100644 --- a/includes/Admin/Orders.php +++ b/includes/Admin/Orders.php @@ -64,6 +64,12 @@ public function add_order_action( $actions ) { * @since 1.0.0 */ public function handle_order_action( $order ) { + // Must have manage woocommerce user capability role to access this endpoint. + if ( ! current_user_can( 'manage_woocommerce' ) ) { // phpcs:ignore WordPress.WP.Capabilities.Unknown + WCSN()->add_notice( __( 'You do not have permission to perform this action.', 'wc-serial-numbers' ), 'error' ); + exit; + } + $order_id = $order->get_id(); $action = current_action(); $action = str_replace( 'woocommerce_order_action_', '', $action ); @@ -197,6 +203,12 @@ public function add_order_bulk_action( $actions ) { * @return string */ public function handle_order_bulk_action( $redirect_to, $action, $order_ids ) { + // Must have manage woocommerce user capability role to access this endpoint. + if ( ! current_user_can( 'manage_woocommerce' ) ) { // phpcs:ignore WordPress.WP.Capabilities.Unknown + WCSN()->add_notice( __( 'You do not have permission to perform this action.', 'wc-serial-numbers' ), 'error' ); + return $redirect_to; + } + if ( in_array( $action, array( 'wcsn_add_keys', 'wcsn_remove_keys' ), true ) ) { foreach ( $order_ids as $order_id ) { switch ( $action ) { diff --git a/includes/Admin/Products.php b/includes/Admin/Products.php index d80f988d..6733ba9b 100644 --- a/includes/Admin/Products.php +++ b/includes/Admin/Products.php @@ -244,98 +244,4 @@ public static function product_save_data() { do_action( 'wcsn_save_simple_product_meta', $post ); } - - - /** - * Display serial numbers in order item meta. - * - * @param int $o_item_id order item id. - * @param \WC_Order_Item $o_item order item object. - * @param \WC_Product $product product object. - * - * @since 1.1.6 - * - * @return void - */ - public function order_itemmeta( $o_item_id, $o_item, $product ) { - global $post; - if ( ! is_object( $post ) || ! isset( $post->ID ) ) { - return; - } - - $order = wc_get_order( $post->ID ); - - // bail for no order. - if ( ! $order ) { - return; - } - - if ( 'completed' !== $order->get_status( 'edit' ) ) { - return; - } - - // if this is not product then no need to process. - if ( empty( $product ) ) { - return; - } - - if ( 'yes' !== get_post_meta( $product->get_id(), '_is_serial_number', true ) ) { - return; - } - - $items = wcsn_get_keys( - array( - 'order_id' => $post->ID, - 'product_id' => $product->get_id(), - ) - ); - - if ( empty( $items ) && $order ) { - echo wp_kses_post( - sprintf( - '
%s
', - __( 'Order missing serial numbers for this item.', 'wc-serial-numbers' ) - ) - ); - return; - } - - $url = admin_url( 'admin.php?page=wc-serial-numbers' ); - printf( - '
%s→', - esc_url( - add_query_arg( - array( - 'order_id' => $post->ID, - 'product_id' => $product->get_id(), - ), - $url - ) - ), - esc_html__( 'Serial Numbers', 'wc-serial-numbers' ) - ); - - $url = admin_url( 'admin.php?page=wc-serial-numbers' ); - - $li = ''; - - foreach ( $items as $item ) { - $li .= sprintf( - '
  •  %s
  • ', - add_query_arg( - array( - 'edit' => $item->id, - ), - $url - ), - wcsn_decrypt_key( $item->serial_key ) - ); - } - echo wp_kses_post( - sprintf( - '', - $li - ) - ); - } } diff --git a/languages/wc-serial-numbers.pot b/languages/wc-serial-numbers.pot index 387f4040..500f6593 100644 --- a/languages/wc-serial-numbers.pot +++ b/languages/wc-serial-numbers.pot @@ -2,9 +2,9 @@ # This file is distributed under the GPL v2 or later. msgid "" msgstr "" -"Project-Id-Version: WC Serial Numbers 2.1.0\n" +"Project-Id-Version: WC Serial Numbers 2.1.1\n" "Report-Msgid-Bugs-To: https://pluginever.com/support\n" -"POT-Creation-Date: 2024-11-05 09:30:29+00:00\n" +"POT-Creation-Date: 2024-12-03 12:23:41+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -24,52 +24,57 @@ msgstr "" "X-Textdomain-Support: yes\n" "X-Generator: grunt-wp-i18n 1.0.3\n" -#: includes/Admin/Orders.php:53 includes/Admin/Orders.php:183 +#: includes/Admin/Orders.php:53 includes/Admin/Orders.php:189 msgid "Add serial keys" msgstr "" -#: includes/Admin/Orders.php:54 includes/Admin/Orders.php:184 +#: includes/Admin/Orders.php:54 includes/Admin/Orders.php:190 msgid "Remove serial keys" msgstr "" -#: includes/Admin/Orders.php:73 +#: includes/Admin/Orders.php:69 includes/Admin/Orders.php:208 +#: includes/Admin/Requests.php:42 +msgid "You do not have permission to perform this action." +msgstr "" + +#: includes/Admin/Orders.php:79 msgid "Serial keys added successfully to the order." msgstr "" -#: includes/Admin/Orders.php:77 +#: includes/Admin/Orders.php:83 msgid "Serial keys removed successfully from the order." msgstr "" -#: includes/Admin/Orders.php:114 includes/Admin/Orders.php:154 +#: includes/Admin/Orders.php:120 includes/Admin/Orders.php:160 msgid "Order is fullfilled and completed." msgstr "" -#: includes/Admin/Orders.php:117 includes/Admin/Orders.php:157 +#: includes/Admin/Orders.php:123 includes/Admin/Orders.php:163 msgid "Order is fullfilled and processing." msgstr "" -#: includes/Admin/Orders.php:120 includes/Admin/Orders.php:160 +#: includes/Admin/Orders.php:126 includes/Admin/Orders.php:166 msgid "Order is fullfilled and on-hold." msgstr "" -#: includes/Admin/Orders.php:123 includes/Admin/Orders.php:163 +#: includes/Admin/Orders.php:129 includes/Admin/Orders.php:169 msgid "Order is fullfilled and draft." msgstr "" -#: includes/Admin/Orders.php:126 includes/Admin/Orders.php:166 +#: includes/Admin/Orders.php:132 includes/Admin/Orders.php:172 msgid "Order is not fullfilled." msgstr "" -#: includes/Admin/Orders.php:212 +#: includes/Admin/Orders.php:224 #. Translators: %d: number of orders. msgid "%d orders updated successfully." msgstr "" -#: includes/Admin/Orders.php:250 +#: includes/Admin/Orders.php:262 msgid "Serial keys sold with this product:" msgstr "" -#: includes/Admin/Orders.php:255 src/Admin/ListTables/ActivationsTable.php:178 +#: includes/Admin/Orders.php:267 src/Admin/ListTables/ActivationsTable.php:178 #: src/Admin/ListTables/KeysTable.php:349 #: src/Admin/views/html-api-actions.php:131 #: src/Admin/views/html-api-validation.php:134 src/Functions/Template.php:42 @@ -77,38 +82,37 @@ msgstr "" msgid "Key" msgstr "" -#: includes/Admin/Orders.php:259 +#: includes/Admin/Orders.php:271 msgid "Expire date" msgstr "" -#: includes/Admin/Orders.php:260 src/Admin/ListTables/KeysTable.php:532 +#: includes/Admin/Orders.php:272 src/Admin/ListTables/KeysTable.php:532 #: src/Functions/Template.php:63 src/functions.php:1036 msgid "Lifetime" msgstr "" -#: includes/Admin/Orders.php:263 src/Admin/views/html-edit-key.php:67 +#: includes/Admin/Orders.php:275 src/Admin/views/html-edit-key.php:67 msgid "Activation limit" msgstr "" -#: includes/Admin/Orders.php:264 +#: includes/Admin/Orders.php:276 msgid "Unlimited" msgstr "" -#: includes/Admin/Orders.php:267 src/Admin/ListTables/KeysTable.php:360 +#: includes/Admin/Orders.php:279 src/Admin/ListTables/KeysTable.php:360 #: src/Admin/Menus.php:320 src/Admin/views/html-edit-key.php:92 #: src/Functions/Template.php:78 src/functions.php:1040 msgid "Status" msgstr "" -#: includes/Admin/Orders.php:294 +#: includes/Admin/Orders.php:306 #. translators: %s is the item number. msgid "View Details" msgstr "" -#: includes/Admin/Products.php:92 includes/Admin/Products.php:315 -#: src/Admin/Admin.php:143 src/Admin/Menus.php:54 src/Admin/Menus.php:88 -#: src/Admin/Menus.php:89 src/Admin/Menus.php:433 -#: src/Functions/Template.php:226 +#: includes/Admin/Products.php:92 src/Admin/Admin.php:141 +#: src/Admin/Menus.php:54 src/Admin/Menus.php:88 src/Admin/Menus.php:89 +#: src/Admin/Menus.php:433 src/Functions/Template.php:226 msgid "Serial Numbers" msgstr "" @@ -169,14 +173,6 @@ msgstr "" msgid "You do not have permission to save this data." msgstr "" -#: includes/Admin/Products.php:297 -msgid "Order missing serial numbers for this item." -msgstr "" - -#: includes/Admin/Requests.php:42 -msgid "You do not have permission to perform this action." -msgstr "" - #: includes/Admin/Requests.php:79 msgid "Key added successfully." msgstr "" @@ -260,42 +256,42 @@ msgstr "" msgid "Missing data." msgstr "" -#: src/Admin/Admin.php:67 +#: src/Admin/Admin.php:65 msgid "Search by product" msgstr "" -#: src/Admin/Admin.php:68 +#: src/Admin/Admin.php:66 msgid "Search by order" msgstr "" -#: src/Admin/Admin.php:69 +#: src/Admin/Admin.php:67 msgid "Search by customer" msgstr "" -#: src/Admin/Admin.php:70 +#: src/Admin/Admin.php:68 msgid "Show" msgstr "" -#: src/Admin/Admin.php:71 +#: src/Admin/Admin.php:69 msgid "Hide" msgstr "" -#: src/Admin/Admin.php:72 src/Frontend/Frontend.php:56 +#: src/Admin/Admin.php:70 src/Frontend/Frontend.php:56 msgid "Copied" msgstr "" -#: src/Admin/Admin.php:110 +#: src/Admin/Admin.php:108 #. translators: 1: Plugin name 2: WordPress msgid "" "Thank you for using %1$s! Share your appreciation with a five-star review " "%2$s." msgstr "" -#: src/Admin/Admin.php:112 +#: src/Admin/Admin.php:110 msgid "Thanks :)" msgstr "" -#: src/Admin/Admin.php:130 +#: src/Admin/Admin.php:128 #. translators: 1: Plugin version msgid "Version %s" msgstr "" @@ -602,30 +598,14 @@ msgstr "" msgid "Not scheduled" msgstr "" -#: src/Admin/Notices.php:43 src/Admin/Notices.php:59 -msgid "30%" -msgstr "" - -#: src/Admin/Notices.php:51 -#. translators: %1$s: link to the plugin page, %2$s: Offer content, %3$s: link -#. to the plugin page, %4$s: end link to the plugin page -msgid "%1$s%2$s%3$s Upgrade Now and Save %4$s" -msgstr "" - -#: src/Admin/Notices.php:67 -#. translators: %1$s: link to the plugin page, %2$s: Offer content, %3$s: link -#. to the plugin page, %4$s: end link to the plugin page -msgid "%1$s%2$s%3$s Claim your discount! %4$s" -msgstr "" - -#: src/Admin/Notices.php:86 +#: src/Admin/Notices.php:49 #. translators: %1$s: link to the plugin page, %2$s: link to the plugin page msgid "" "%s is not functional because you are using outdated version of the plugin, " "please update to the version 1.3.8 or higher." msgstr "" -#: src/Admin/Notices.php:100 +#: src/Admin/Notices.php:63 #. translators: %1$s: link to the plugin page, %2$s: link to the plugin page msgid "" "Upgrade to %6$s to unlock the full potential of %5$s and avail a %1$s " @@ -1247,7 +1227,7 @@ msgstr "" msgid "Could not find any products with serial numbers enabled." msgstr "" -#: src/Frontend/Shortcodes.php:270 src/Frontend/Shortcodes.php:286 +#: src/Frontend/Shortcodes.php:273 src/Frontend/Shortcodes.php:296 msgid "Invalid request." msgstr "" @@ -1313,14 +1293,14 @@ msgstr "" msgid "Order id is invalid." msgstr "" -#: src/Orders.php:66 +#: src/Orders.php:63 #. translators: %1$s: product title, %2$s: stock quantity. msgid "" "Sorry, there aren’t enough Serial Keys for %1$s. Please remove this item or " "lower the quantity. For now, we have %2$s Serial Keys for this product." msgstr "" -#: src/Orders.php:109 +#: src/Orders.php:106 msgid "Order automatically completed by the Serial Numbers for WooCommerce." msgstr "" diff --git a/package-lock.json b/package-lock.json index 9686fdf7..91cdd72b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wc-serial-numbers", - "version": "2.1.0", + "version": "2.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "wc-serial-numbers", - "version": "2.1.0", + "version": "2.1.1", "license": "GPL v2 or later", "devDependencies": { "@lodder/time-grunt": "^4.0.0", diff --git a/package.json b/package.json index bad7e285..24652a0d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "wc-serial-numbers", "title": "WC Serial Numbers", - "version": "2.1.0", + "version": "2.1.1", "description": "Sell and manage license keys/ serial numbers/ secret keys easily within your WooCommerce store.", "homepage": "https://pluginever.com/plugins/woocommerce-serial-numbers-pro/", "license": "GPL v2 or later", diff --git a/readme.txt b/readme.txt index f0f03815..c8bfb6f8 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: license, license manager, serial number, serial key, woocommerce Requires at least: 5.0 Tested up to: 6.6 Requires PHP: 7.4 -Stable tag: 2.1.0 +Stable tag: 2.1.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -252,6 +252,10 @@ Yes, you are always welcome to [provide suggestions](https://github.com/pluginev 10. Order Notification Email with Keys == Changelog == += 2.1.1 (3rd Dec 2024) = +* Enhance: Enhanced security to handle form actions. +* Fix: Vulnerability security issue. + = 2.1.0 (5th Nov 2024) = * Enhance: Orders page key status lock icon color improved for better visibility. diff --git a/src/Admin/Admin.php b/src/Admin/Admin.php index 949f28a0..2456b68e 100644 --- a/src/Admin/Admin.php +++ b/src/Admin/Admin.php @@ -48,8 +48,6 @@ public function init() { * @since 1.0.0 */ public function enqueue_scripts( $hook ) { - WCSN()->enqueue_style( 'wcsn-halloween', 'css/admin-halloween.css' ); - if ( ! in_array( $hook, self::get_screen_ids(), true ) ) { return; } diff --git a/src/Admin/Notices.php b/src/Admin/Notices.php index b7698d04..0683db85 100644 --- a/src/Admin/Notices.php +++ b/src/Admin/Notices.php @@ -37,43 +37,6 @@ public function __construct() { * @since 1.0.0 */ public function add_notices() { - // Halloween's promotion notice. - if ( ! $this->is_notice_dismissed( 'wcsn_halloween_promotion_24' ) ) { - if ( ! function_exists( 'wc_serial_numbers_pro' ) ) { - $discount_percentage = esc_html__( '30%', 'wc-serial-numbers' ); - $this->notices[] = array( - 'type' => 'info', - 'classes' => 'notice-alt notice-large wcsn-halloween', - 'dismissible' => true, - 'id' => 'wcsn_halloween_promotion_24', - 'message' => sprintf( - /* translators: %1$s: link to the plugin page, %2$s: Offer content, %3$s: link to the plugin page, %4$s: end link to the plugin page */ - __( '%1$s%2$s%3$s Upgrade Now and Save %4$s', 'wc-serial-numbers' ), - '
    WC Serial Numbers Halloween offer
    ', - '👻 Halloween Sale: ' . $discount_percentage . ' OFF on WC Serial Numbers Pro

    Grab a ' . $discount_percentage . ' discount on WC Serial Numbers Pro and all our premium plugins this Halloween! Use code ‘BIGTREAT30’. Don\'t miss out!

    ', - '', - $discount_percentage . '
    ', - ), - ); - } else { - $discount_percentage = esc_html__( '30%', 'wc-serial-numbers' ); - $this->notices[] = array( - 'type' => 'info', - 'classes' => 'notice-alt notice-large wcsn-halloween', - 'dismissible' => true, - 'id' => 'wcsn_halloween_promotion_24', - 'message' => sprintf( - /* translators: %1$s: link to the plugin page, %2$s: Offer content, %3$s: link to the plugin page, %4$s: end link to the plugin page */ - __( '%1$s%2$s%3$s Claim your discount! %4$s', 'wc-serial-numbers' ), - '
    WC Serial Numbers Halloween offer
    ', - '👻 Halloween Sale: ' . $discount_percentage . ' OFF on All Plugins

    Get ' . $discount_percentage . ' OFF on all premium plugins with code ‘BIGTREAT30’. Hurry, this deal won’t last long!

    ', - '', - '
    ', - ), - ); - } - } - $is_outdated_pro = defined( 'WC_SERIAL_NUMBER_PRO_PLUGIN_VERSION' ) && version_compare( WC_SERIAL_NUMBER_PRO_PLUGIN_VERSION, '1.2.1', '<' ); if ( ! $is_outdated_pro ) { $is_outdated_pro = function_exists( 'wc_serial_numbers_pro' ) && is_callable( array( 'wc_serial_numbers_pro', 'get_version' ) ) && wc_serial_numbers_pro()->get_version() && version_compare( wc_serial_numbers_pro()->get_version(), '1.2.1', '<' ); diff --git a/src/Frontend/Shortcodes.php b/src/Frontend/Shortcodes.php index 2dcb10c5..a3c561f1 100644 --- a/src/Frontend/Shortcodes.php +++ b/src/Frontend/Shortcodes.php @@ -261,13 +261,18 @@ public function activation_form( $atts ) { * Validate serial key. * * @since 1.0.0 - * * @return void */ public function validate_serial_key() { - // Check if nonce is set. + wp_verify_nonce( '_nonce' ); // Nonce verification. + if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['_wpnonce'] ), 'wcsn_user_action' ) ) { - wp_send_json_error( array( 'message' => __( 'Invalid request.', 'wc-serial-numbers' ) ) ); + wp_send_json( + array( + 'success' => false, + 'message' => __( 'Invalid request.', 'wc-serial-numbers' ), + ) + ); } // perform a rest api request internally. @@ -282,8 +287,15 @@ public function validate_serial_key() { * @return void */ public function activate_serial_key() { + wp_verify_nonce( '_nonce' ); // Nonce verification. + if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_POST['_wpnonce'] ), 'wcsn_user_action' ) ) { - wp_send_json_error( array( 'message' => __( 'Invalid request.', 'wc-serial-numbers' ) ) ); + wp_send_json( + array( + 'success' => false, + 'message' => __( 'Invalid request.', 'wc-serial-numbers' ), + ) + ); } $request = isset( $_POST['request'] ) ? sanitize_text_field( wp_unslash( $_POST['request'] ) ) : 'activate'; diff --git a/src/Orders.php b/src/Orders.php index f0011ec2..19b88aac 100644 --- a/src/Orders.php +++ b/src/Orders.php @@ -26,9 +26,6 @@ public function __construct() { add_action( 'woocommerce_order_status_completed', array( __CLASS__, 'handle_order_status_changed' ) ); add_action( 'woocommerce_checkout_order_processed', array( __CLASS__, 'handle_order_status_changed' ) ); add_action( 'woocommerce_order_status_changed', array( __CLASS__, 'handle_order_status_changed' ) ); - // TODO: handle order status change and order remove scenario. - // TODO: handle order again feature. - add_action( 'woocommerce_email_after_order_table', array( __CLASS__, 'order_email_keys' ), PHP_INT_MAX ); add_action( 'woocommerce_order_details_after_order_table', array( __CLASS__, 'order_display_keys' ), 9 ); } diff --git a/wc-serial-numbers.php b/wc-serial-numbers.php index 73d2ac1d..d321d63e 100644 --- a/wc-serial-numbers.php +++ b/wc-serial-numbers.php @@ -3,7 +3,7 @@ * Plugin Name: WC Serial Numbers * Plugin URI: https://pluginever.com/plugins/wocommerce-serial-numbers-pro/ * Description: Sell and manage license keys/ serial numbers/ secret keys easily within your WooCommerce store. - * Version: 2.1.0 + * Version: 2.1.1 * Requires at least: 5.0 * Requires PHP: 7.4 * Author: PluginEver @@ -12,9 +12,9 @@ * License URI: https://www.gnu.org/licenses/gpl-2.0.html * Text Domain: wc-serial-numbers * Domain Path: /languages - * Tested up to: 6.6 - * WC requires at least: 5.0 - * WC tested up to: 9.3 + * Tested up to: 6.7 + * WC requires at least: 3.0.0 + * WC tested up to: 9.4 * * @package WooCommerceSerialNumbers * diff --git a/webpack.config.js b/webpack.config.js index 2b40f80a..8f5ff7a9 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -13,7 +13,6 @@ module.exports = { 'js/admin-script': './assets/js/admin-script.js', 'js/frontend-script': './assets/js/frontend-script.js', 'css/admin-style': './assets/css/admin-style.scss', - 'css/admin-halloween': './assets/css/halloween.scss', 'css/frontend-style': './assets/css/frontend-style.scss', }, output: {