diff --git a/.github/workflows/pr-unit-testing.yml b/.github/workflows/pr-unit-testing.yml index db8a89d..5593408 100644 --- a/.github/workflows/pr-unit-testing.yml +++ b/.github/workflows/pr-unit-testing.yml @@ -7,29 +7,18 @@ on: pull_request: env: - PHP_PREF_MIN_VERSION: '7.4' - WP_STABLE_VERSION: '5.7.*' + PHP_VERSION: '7.4' + WP_VERSION: '5.9.*' WP_MULTISITE: 0 - WC_STABLE_VERSION: '5.7.*' + WC_VERSION: '6.4.*' COMPOSER_VERSION: '2.2' - ACTION_VERSION: 2 + ACTION_VERSION: 3 jobs: pr_unit_testing: runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - job-name: 'Unit Test Latest Stable Requirements' - bleeding-edge: false - php-version: '7.4' - wordpress-version: '5.7.*' - wp-multisite-mode: 0 - woocommerce-version: '5.7.*' - - name: '${{ matrix.job-name }} (PHP:${{ matrix.php-version }}/WP:${{ matrix.wordpress-version }}/WC:${{ matrix.woocommerce-version }})' + name: 'Unit Test PR in Latest Stable Requirements' steps: - name: Checkout Code @@ -48,9 +37,9 @@ jobs: composer-cache-name: cache-composer with: path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-build-${{ env.composer-cache-name }}-wp-${{ matrix.wordpress-version }}-wc-${{ matrix.woocommerce-version }}-v${{ env.ACTION_VERSION }}-${{ hashFiles('**/composer.lock') }} + key: ${{ runner.os }}-build-${{ env.composer-cache-name }}-wp-${{ env.WP_VERSION }}-wc-${{ env.WC_VERSION }}-v${{ env.ACTION_VERSION }}-${{ hashFiles('**/composer.lock') }} restore-keys: | - ${{ runner.os }}-build-${{ env.composer-cache-name }}-wp-${{ matrix.wordpress-version }}-wc-${{ matrix.woocommerce-version }}-v${{ env.ACTION_VERSION }}- + ${{ runner.os }}-build-${{ env.composer-cache-name }}-wp-${{ env.WP_VERSION }}-wc-${{ env.WC_VERSION }}-v${{ env.ACTION_VERSION }}- - name: Setup Node Environment # https://github.com/marketplace/actions/setup-node-js-environment @@ -63,14 +52,14 @@ jobs: # https://github.com/marketplace/actions/setup-php-action uses: shivammathur/setup-php@v2 with: - php-version: "${{ matrix.php-version }}" + php-version: "${{ env.PHP_VERSION }}" tools: "composer:${{ env.COMPOSER_VERSION }}" - name: Environment Check run: php -v && composer --version - name: Require Specified WordPress & WooCommerce Version - run: composer require johnpbloch/wordpress-core:${{ matrix.wordpress-version }} php-stubs/wordpress-stubs:${{ matrix.wordpress-version }} wp-phpunit/wp-phpunit:${{ matrix.wordpress-version }} wpackagist-plugin/woocommerce:${{ matrix.woocommerce-version }} php-stubs/woocommerce-stubs:${{ matrix.woocommerce-version }} --dev --prefer-source --update-with-all-dependencies + run: composer require johnpbloch/wordpress-core:${{ env.WP_VERSION }} php-stubs/wordpress-stubs:${{ env.WP_VERSION }} wp-phpunit/wp-phpunit:${{ env.WP_VERSION }} wpackagist-plugin/woocommerce:${{ env.WC_VERSION }} php-stubs/woocommerce-stubs:${{ env.WC_VERSION }} --dev --prefer-source --update-with-all-dependencies - name: Install Composer Dependencies run: composer install --prefer-dist diff --git a/.github/workflows/unit-testing.yml b/.github/workflows/unit-testing.yml index ef1826b..e431e7f 100644 --- a/.github/workflows/unit-testing.yml +++ b/.github/workflows/unit-testing.yml @@ -9,19 +9,8 @@ on: - develop env: - PHP_MIN_VERSION: '7.2' - PHP_PREF_MIN_VERSION: '7.3' - PHP_STABLE_VERSION: '7.4' - WP_MIN_VERSION: '5.5.*' - WP_PREF_MIN_VERSION: '5.6.*' - WP_PREF_STABLE_VERSION: '5.7.*' - WP_STABLE_VERSION: '5.8.*' - WC_MIN_VERSION: '4.6.*' - WC_PREF_MIN_VERSION: '4.8.*' - WC_PREF_STABLE_VERSION: '5.*' - WC_STABLE_VERSION: '6.*' COMPOSER_VERSION: '2.2' - ACTION_VERSION: 2 + ACTION_VERSION: 3 jobs: matrix_unit_testing: @@ -31,49 +20,25 @@ jobs: strategy: fail-fast: false matrix: + job-name: ['Unit Test'] + php-version: ['7.2','7.3','7.4','8.0'] + wordpress-version: ['5.5.*','5.6.*','5.7.*','5.8.*','5.9.*'] + woocommerce-version: ['4.0.*','4.*','5.0.*','5.*','6.0.*','6.4.*'] + wp-multisite-mode: [0] + bleeding-edge: [false] include: - - job-name: 'Unit Test Latest Stable Requirements' - bleeding-edge: false - php-version: '7.4' - wordpress-version: '5.8.*' - wp-multisite-mode: 0 - woocommerce-version: '6.*' - - job-name: 'Unit Test Preferred Stable Requirements' - bleeding-edge: false - php-version: '7.4' - wordpress-version: '5.7.*' - wp-multisite-mode: 0 - woocommerce-version: '5.*' - - job-name: 'Unit Test Preferred Minimum Requirements' - bleeding-edge: false - php-version: '7.3' - wordpress-version: '5.6.*' - wp-multisite-mode: 0 - woocommerce-version: '4.8.*' - - job-name: 'Unit Test Minimum Requirements' - bleeding-edge: false - php-version: '7.2' - wordpress-version: '5.5.*' - wp-multisite-mode: 0 - woocommerce-version: '4.6.*' - - job-name: 'Unit Test Latest Compatibility Requirements' - bleeding-edge: false - php-version: '8.0' - wordpress-version: '5.9.*' - wp-multisite-mode: 0 - woocommerce-version: '6.4.*' - job-name: 'Unit Test Bleeding Edge Requirements' bleeding-edge: true - php-version: '7.4' + php-version: '8.1' wordpress-version: 'dev-master' wp-multisite-mode: 0 woocommerce-version: 'dev-trunk' - job-name: 'Unit Test Multisite Compatibility Requirements' bleeding-edge: false - php-version: '7.4' - wordpress-version: '5.7.*' + php-version: '8.0' + wordpress-version: '5.9.*' wp-multisite-mode: 1 - woocommerce-version: '5.*' + woocommerce-version: '6.4.*' name: '${{ matrix.job-name }} (PHP:${{ matrix.php-version }}/WP:${{ matrix.wordpress-version }}/WC:${{ matrix.woocommerce-version }})' @@ -141,12 +106,12 @@ jobs: run: | composer require phpunit/phpunit:^8.0 phpro/grumphp:^1.10.0 --dev -W --ignore-platform-req=php - - name: Install Composer Dependencies (PHP 8.0) - if: matrix.php-version == '8.0' + - name: Install Composer Dependencies (PHP 8.x) + if: matrix.php-version == '8.0' || matrix.php-version == '8.1' run: composer install --prefer-dist --ignore-platform-req=php - name: Install Composer Dependencies - if: matrix.php-version != '8.0' + if: matrix.php-version != '8.0' && matrix.php-version != '8.1' run: composer install --prefer-dist - name: NPM Setup diff --git a/.wordpress-org/screenshot-6.png b/.wordpress-org/screenshot-6.png new file mode 100644 index 0000000..0370dd5 Binary files /dev/null and b/.wordpress-org/screenshot-6.png differ diff --git a/CHANGELOG.md b/CHANGELOG.md index ba4c768..1a59c09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 1.4.1 + +### Changed + +- Updated the README to provide details and usage on the latest functionality and features. + +### Fixed + +- Possible PHP Fatal Error when using new Local Pickup association functionality. + +### Added + +- Added new screenshot for "Ready for Pickup" email notification. + ## 1.4.0 ### Changed @@ -10,7 +24,7 @@ - Updated Plugin Development Dependencies -### Adds +### Added - Added New Ready for Pickup Order Status & Customer Email - Added Pickup Time Required & Local Pickup Link Capabilities diff --git a/README.md b/README.md index 70b86fe..833b12d 100644 --- a/README.md +++ b/README.md @@ -4,56 +4,66 @@ **Tags:** woocommcerce, shipping, local pickup, checkout fields, ecommerce, e-commerce, wordpress ecommerce **Requires at least:** 4.9 **Tested up to:** 5.9.3 -**Stable tag:** 1.4.0 +**Stable tag:** 1.4.1 **Requires PHP:** 7.2 **License:** GPLv2 or later **License URI:** http://www.gnu.org/licenses/gpl-2.0.html -Add an option to WooCommerce checkout pages for Local Pickup orders to allow the user to choose a pickup time, defined in the admin area. +Add an option to the WooCommerce checkout for Local Pickup orders to allow the user to choose a pickup time, defined in the admin area. ## Description ## Local Pickup Time extends the [WooCommerce](http://wordpress.org/plugins/woocommerce/) Local Pickup shipping option to allow users to choose a pickup time. -In the admin area, under WooCommerce -> Settings -> General, you can set the start and end times for order pickups each day, as well as define days the store is closed and allow you to select a time interval for allowing pickups. In addition, you can specify a time delay between when a customer places their order and when they can pickup their order to account for processing time, as well as how many days ahead a customer can choose for their delivery. +In the admin area, under "WooCommerce -> Settings -> Shipping -> Local Pickup Time settings", you can set the start and end times for order pickups each day, as well as define days the store is closed and allow you to select a time interval for allowing pickups. In addition, you can specify a time delay between when a customer places their order and when they can pickup their order to account for processing time, as well as how many days ahead a customer can choose for their delivery. -** Requires WooCommerce 4.x ** +### Features ### + +- **Daily Pickup Available Start/End Time:** Set the starting time and ending time for each day that pickups are available. +- **Pickup Time Interval to Allow Pickup Planning:** Define Pickup Time intervals to ensure that pickups are spaced out with adequate time to manage the number of pickups at any given time. +- **Pickup Time Delay to Allow for Required Product Preparation Time:** Setup a pickup delay to ensure that you have the required preparation time for products to be available. +- **Make Pickup Time Optional:** Allow pickup time to be optional in cases where a customer should only have the option to choose a Pickup Time but not be required to do so. +- **Limit Local Pickup Time to Local Shipping Methods Only:** Instead of always presenting a Pickup Time option on checkout only present the Pickup Time on the WooCommerce "Local Pickup" shipping method. + - **Ability to limit to specific Shipping Zones.** Pickup Time can be limited to only specific Shipping Zones. +- **"Ready for Pickup" Order Status:** A custom Order Status of "Ready for Pickup" is available in order to better track the progress of your orders. + - **Custom "Ready for Pickup" customer notification email template.** A custom "Email notification" can be setup under "WooCommerce -> Settings -> Emails" for when an Order is changed to "Ready for Pickup". ## Installation ## ### Using The WordPress Dashboard ### 1. Navigate to the 'Add New' in the plugins dashboard -2. Search for 'woocommerce-local-pickup-time' +2. Search for 'WooCommerce Local Pickup Time Select' 3. Click 'Install Now' 4. Activate the plugin on the Plugin dashboard ### Uploading in WordPress Dashboard ### -1. Navigate to the 'Add New' in the plugins dashboard -2. Navigate to the 'Upload' area -3. Select `woocommerce-local-pickup-time.zip` from your computer -4. Click 'Install Now' -5. Activate the plugin in the Plugin dashboard +1. Download a zip file of the plugins, which can be done from the WordPress plugin directory +2. Navigate to 'Add New' in the plugins dashboard +3. Click on the "Upload Plugin" button +4. Choose the downloaded Zip file from your computer with "Choose File" +5. Click 'Install Now' +6. Activate the plugin in the Plugin dashboard ### Using FTP ### -1. Download `woocommerce-local-pickup-time.zip` -2. Extract the `woocommerce-local-pickup-time` directory to your computer -3. Upload the `woocommerce-local-pickup-time` directory to the `/wp-content/plugins/` directory +1. Download a zip file of the plugins, which can be done from the WordPress plugin directory +2. Extract the Zip file to a directory on your computer +3. Upload the `woocommerce-local-pickup-time-select` directory to the `/wp-content/plugins/` directory 4. Activate the plugin in the Plugin dashboard # Usage # -Navigate to `WooCommerce -> Settings -> General`, edit your start and end times for daily pickups, set your days closed and time interval for pickups. +Navigate to `WooCommerce -> Settings -> Shipping -> Local Pickup Time settings`, to edit your start and end times for daily pickups, set your days closed and time interval for pickups. ## Frequently Asked Questions ## ### Things aren't displaying properly ### -Go to `WooCommerce -> Settings -> General` and Save Changes to trigger the options to update. - -Make sure to set your Timezone on the WordPress Admin Settings page. +- Go to `WooCommerce -> Settings -> Shipping -> Local Pickup Time settings` and "Save Changes" to trigger the options to update. +- Make sure to set your Timezone on the WordPress Admin Settings page to a proper value that is not a UTC offset. +- If "Limit to Local Pickup Shipping Methods?" is checked in the "Local Pickup Time settings", ensure you have a Shipping Zone that includes a "Local Pickup" Shipping Method. Additionally, make sure that each "Local Pickup" Shipping Method you want to have a "Pickup Time" has it enabled. ### How do I change the location of the pickup time select box during checkout? ### @@ -70,9 +80,20 @@ The location, by default, is hooked to `woocommerce_admin_order_data_after_billi 3. Local Pickup Shipping Method Settings Screen 4. Order Listing Includes Pickup Date/Time 5. Order Details Screen Includes Pickup Date/Time +6. Ready for Pickup Order Email Notification ## Changelog ## +### 1.4.1 +#### Changed +- Updated the README to provide details and usage on the latest functionality and features. + +#### Fixed +- Possible PHP Fatal Error when using new Local Pickup association functionality. + +#### Added +- Added new screenshot for "Ready for Pickup" email notification. + ### 1.4.0 #### Changed - Updated WordPress & WooCommerce Supported Versions. @@ -80,7 +101,7 @@ The location, by default, is hooked to `woocommerce_admin_order_data_after_billi #### Fixed - Updated Plugin Development Dependencies -#### Adds +#### Added - Added New Ready for Pickup Order Status & Customer Email - Added Pickup Time Required & Local Pickup Link Capabilities diff --git a/admin/class-local-pickup-time-admin.php b/admin/class-local-pickup-time-admin.php index 95cdcbd..5a6ee02 100644 --- a/admin/class-local-pickup-time-admin.php +++ b/admin/class-local-pickup-time-admin.php @@ -480,14 +480,18 @@ public function shipping_instance_form_add_extra_fields( $fields ) { * * @since 1.4.0 * - * @param array $args The shipping method arguments. - * @param WC_Shipping_Method $shipping_method The WC_Shipping_Method instance object. + * @param array $args The shipping method arguments. + * @param WC_Shipping_Method|null $shipping_method The WC_Shipping_Method instance object. * * @return array */ - public function shipping_method_add_rate_pickup_time_args( $args, $shipping_method ) { + public function shipping_method_add_rate_pickup_time_args( $args, $shipping_method = null ) { - if ( 'local_pickup' === $shipping_method->get_rate_id() ) { + if ( empty( $shipping_method ) ) { + return $args; + } + + if ( 'yes' === $this->plugin->get_local_pickup_only() && 'local_pickup' === $shipping_method->get_rate_id() ) { $args['meta_data']['wclpt_shipping_method_enabled'] = $shipping_method->get_option( 'wclpt_shipping_method_enabled' ); } diff --git a/composer.json b/composer.json index 64922b8..fff1332 100644 --- a/composer.json +++ b/composer.json @@ -53,7 +53,7 @@ "johnpbloch/wordpress-core": "~5.9.0", "johnpbloch/wordpress-core-installer": "^2.0", "mockery/mockery": "^1.3", - "php-stubs/woocommerce-stubs": "~6.3.0", + "php-stubs/woocommerce-stubs": "~6.4.0", "php-stubs/wordpress-stubs": "~5.9.0", "phpcompatibility/php-compatibility": "^9.0", "phpcompatibility/phpcompatibility-wp": "^2.1", @@ -71,7 +71,7 @@ "woocommerce/woocommerce-sniffs": "~0.1.0", "wp-coding-standards/wpcs": "^2.2", "wp-phpunit/wp-phpunit": "~5.9.0", - "wpackagist-plugin/woocommerce": "~6.3.0", + "wpackagist-plugin/woocommerce": "~6.4.0", "yoast/phpunit-polyfills": "^1.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 834abdc..d2d9187 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "3775448edc56cb2175136f97344a28bf", + "content-hash": "733b2722a3c11d5025e2c1baa0e38b9a", "packages": [ { "name": "composer/installers", @@ -1988,16 +1988,16 @@ }, { "name": "php-stubs/woocommerce-stubs", - "version": "v6.3.1", + "version": "v6.4.1", "source": { "type": "git", "url": "https://github.com/php-stubs/woocommerce-stubs.git", - "reference": "66307f9ca215fb9339f3ddab078b26d47a818d6c" + "reference": "fa5da21d41cfead6210391c0879cee9225f29cdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-stubs/woocommerce-stubs/zipball/66307f9ca215fb9339f3ddab078b26d47a818d6c", - "reference": "66307f9ca215fb9339f3ddab078b26d47a818d6c", + "url": "https://api.github.com/repos/php-stubs/woocommerce-stubs/zipball/fa5da21d41cfead6210391c0879cee9225f29cdb", + "reference": "fa5da21d41cfead6210391c0879cee9225f29cdb", "shasum": "" }, "require": { @@ -2026,9 +2026,9 @@ ], "support": { "issues": "https://github.com/php-stubs/woocommerce-stubs/issues", - "source": "https://github.com/php-stubs/woocommerce-stubs/tree/v6.3.1" + "source": "https://github.com/php-stubs/woocommerce-stubs/tree/v6.4.1" }, - "time": "2022-04-30T07:39:21+00:00" + "time": "2022-04-30T07:39:42+00:00" }, { "name": "php-stubs/wordpress-stubs", @@ -6709,15 +6709,15 @@ }, { "name": "wpackagist-plugin/woocommerce", - "version": "6.3.1", + "version": "6.4.1", "source": { "type": "svn", "url": "https://plugins.svn.wordpress.org/woocommerce/", - "reference": "tags/6.3.1" + "reference": "tags/6.4.1" }, "dist": { "type": "zip", - "url": "https://downloads.wordpress.org/plugin/woocommerce.6.3.1.zip" + "url": "https://downloads.wordpress.org/plugin/woocommerce.6.4.1.zip" }, "require": { "composer/installers": "^1.0 || ^2.0" diff --git a/languages/woocommerce-local-pickup-time-cs_CZ.po b/languages/woocommerce-local-pickup-time-cs_CZ.po index 5269574..c83c47e 100644 --- a/languages/woocommerce-local-pickup-time-cs_CZ.po +++ b/languages/woocommerce-local-pickup-time-cs_CZ.po @@ -5,7 +5,7 @@ msgstr "" "Project-Id-Version: WooCommerce Local Pickup Time\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-local-" "pickup-time\n" -"POT-Creation-Date: 2022-05-13 05:32:56+00:00\n" +"POT-Creation-Date: 2022-05-23 04:03:40+00:00\n" "PO-Revision-Date: 2019-02-01 14:28:47+0000\n" "Language: cs_CZ\n" "MIME-Version: 1.0\n" @@ -366,7 +366,7 @@ msgid "" msgstr "" #: admin/class-local-pickup-time-admin.php:465 -#: admin/class-local-pickup-time-admin.php:628 +#: admin/class-local-pickup-time-admin.php:632 #: public/class-local-pickup-time.php:863 #: public/class-local-pickup-time.php:935 msgid "Pickup Time" @@ -381,18 +381,18 @@ msgid "This controls whether a Pickup Time is tied to the shipping method." msgstr "" #. translators: %s: number of orders -#: admin/class-local-pickup-time-admin.php:515 +#: admin/class-local-pickup-time-admin.php:519 msgid "Ready for Pickup (%s)" msgid_plural "Ready for Pickup (%s)" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: admin/class-local-pickup-time-admin.php:548 +#: admin/class-local-pickup-time-admin.php:552 msgid "Change status to ready for pickup" msgstr "" -#: admin/class-local-pickup-time-admin.php:607 +#: admin/class-local-pickup-time-admin.php:611 msgid "Pickup Time:" msgstr "Čas vyzvednutí:" @@ -494,8 +494,8 @@ msgstr "" msgid "https://www.ndigitals.com/" msgstr "" -#: admin/class-local-pickup-time-admin.php:509 -#: admin/class-local-pickup-time-admin.php:531 +#: admin/class-local-pickup-time-admin.php:513 +#: admin/class-local-pickup-time-admin.php:535 msgctxt "Order status" msgid "Ready for Pickup" msgstr "" diff --git a/languages/woocommerce-local-pickup-time-en_US.po b/languages/woocommerce-local-pickup-time-en_US.po index f915e95..86e972d 100644 --- a/languages/woocommerce-local-pickup-time-en_US.po +++ b/languages/woocommerce-local-pickup-time-en_US.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: WooCommerce Local Pickup Time Select\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woocommerce-local-" "pickup-time\n" -"POT-Creation-Date: 2022-05-13 05:32:56+00:00\n" +"POT-Creation-Date: 2022-05-23 04:03:40+00:00\n" "PO-Revision-Date: 2017-05-11 11:03+0200\n" "Last-Translator: Karolína Vyskočilová \n" "Language-Team: Matt Banks \n" @@ -319,7 +319,7 @@ msgid "" msgstr "" #: admin/class-local-pickup-time-admin.php:465 -#: admin/class-local-pickup-time-admin.php:628 +#: admin/class-local-pickup-time-admin.php:632 #: public/class-local-pickup-time.php:863 #: public/class-local-pickup-time.php:935 msgid "Pickup Time" @@ -334,17 +334,17 @@ msgid "This controls whether a Pickup Time is tied to the shipping method." msgstr "" #. translators: %s: number of orders -#: admin/class-local-pickup-time-admin.php:515 +#: admin/class-local-pickup-time-admin.php:519 msgid "Ready for Pickup (%s)" msgid_plural "Ready for Pickup (%s)" msgstr[0] "" msgstr[1] "" -#: admin/class-local-pickup-time-admin.php:548 +#: admin/class-local-pickup-time-admin.php:552 msgid "Change status to ready for pickup" msgstr "" -#: admin/class-local-pickup-time-admin.php:607 +#: admin/class-local-pickup-time-admin.php:611 msgid "Pickup Time:" msgstr "" @@ -444,8 +444,8 @@ msgstr "" msgid "https://www.ndigitals.com/" msgstr "" -#: admin/class-local-pickup-time-admin.php:509 -#: admin/class-local-pickup-time-admin.php:531 +#: admin/class-local-pickup-time-admin.php:513 +#: admin/class-local-pickup-time-admin.php:535 msgctxt "Order status" msgid "Ready for Pickup" msgstr "" diff --git a/languages/woocommerce-local-pickup-time.pot b/languages/woocommerce-local-pickup-time.pot index f816e92..24eafc4 100644 --- a/languages/woocommerce-local-pickup-time.pot +++ b/languages/woocommerce-local-pickup-time.pot @@ -2,10 +2,10 @@ # This file is distributed under the GPL-2.0+. msgid "" msgstr "" -"Project-Id-Version: WooCommerce Local Pickup Time Select 1.4.0\n" +"Project-Id-Version: WooCommerce Local Pickup Time Select 1.4.1\n" "Report-Msgid-Bugs-To: " "https://wordpress.org/support/plugin/woocommerce-local-pickup-time\n" -"POT-Creation-Date: 2022-05-13 05:34:43+00:00\n" +"POT-Creation-Date: 2022-05-23 04:03:40+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -323,7 +323,7 @@ msgid "" msgstr "" #: admin/class-local-pickup-time-admin.php:465 -#: admin/class-local-pickup-time-admin.php:628 +#: admin/class-local-pickup-time-admin.php:632 #: public/class-local-pickup-time.php:863 #: public/class-local-pickup-time.php:935 msgid "Pickup Time" @@ -337,18 +337,18 @@ msgstr "" msgid "This controls whether a Pickup Time is tied to the shipping method." msgstr "" -#: admin/class-local-pickup-time-admin.php:515 +#: admin/class-local-pickup-time-admin.php:519 #. translators: %s: number of orders msgid "Ready for Pickup (%s)" msgid_plural "Ready for Pickup (%s)" msgstr[0] "" msgstr[1] "" -#: admin/class-local-pickup-time-admin.php:548 +#: admin/class-local-pickup-time-admin.php:552 msgid "Change status to ready for pickup" msgstr "" -#: admin/class-local-pickup-time-admin.php:607 +#: admin/class-local-pickup-time-admin.php:611 msgid "Pickup Time:" msgstr "" @@ -448,8 +448,8 @@ msgstr "" msgid "https://www.ndigitals.com/" msgstr "" -#: admin/class-local-pickup-time-admin.php:509 -#: admin/class-local-pickup-time-admin.php:531 +#: admin/class-local-pickup-time-admin.php:513 +#: admin/class-local-pickup-time-admin.php:535 msgctxt "Order status" msgid "Ready for Pickup" msgstr "" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 48d61bc..38cf566 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "woocommerce-local-pickup-time", - "version": "1.4.0", + "version": "1.4.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d57b143..c529931 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "woocommerce-local-pickup-time", - "version": "1.4.0", + "version": "1.4.1", "description": "Add an an option to WooCommerce checkout pages for Local Pickup that allows the user to choose a pickup time.", "main": "Gruntfile.js", "repository": { diff --git a/public/class-local-pickup-time.php b/public/class-local-pickup-time.php index 94ee386..ebeadab 100644 --- a/public/class-local-pickup-time.php +++ b/public/class-local-pickup-time.php @@ -20,7 +20,7 @@ class Local_Pickup_Time { * * @var string */ - const VERSION = '1.4.0'; + const VERSION = '1.4.1'; /** * Plugin version wp_options meta key. diff --git a/readme.txt b/readme.txt index 2a98fc3..c1d507d 100644 --- a/readme.txt +++ b/readme.txt @@ -4,56 +4,66 @@ Donate link: https://www.ndigitals.com/donate/ Tags: woocommcerce, shipping, local pickup, checkout fields, ecommerce, e-commerce, wordpress ecommerce Requires at least: 4.9 Tested up to: 5.9.3 -Stable tag: 1.4.0 +Stable tag: 1.4.1 Requires PHP: 7.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html -Add an option to WooCommerce checkout pages for Local Pickup orders to allow the user to choose a pickup time, defined in the admin area. +Add an option to the WooCommerce checkout for Local Pickup orders to allow the user to choose a pickup time, defined in the admin area. == Description == Local Pickup Time extends the [WooCommerce](http://wordpress.org/plugins/woocommerce/) Local Pickup shipping option to allow users to choose a pickup time. -In the admin area, under WooCommerce -> Settings -> General, you can set the start and end times for order pickups each day, as well as define days the store is closed and allow you to select a time interval for allowing pickups. In addition, you can specify a time delay between when a customer places their order and when they can pickup their order to account for processing time, as well as how many days ahead a customer can choose for their delivery. +In the admin area, under "WooCommerce -> Settings -> Shipping -> Local Pickup Time settings", you can set the start and end times for order pickups each day, as well as define days the store is closed and allow you to select a time interval for allowing pickups. In addition, you can specify a time delay between when a customer places their order and when they can pickup their order to account for processing time, as well as how many days ahead a customer can choose for their delivery. -** Requires WooCommerce 4.x ** += Features = + +- **Daily Pickup Available Start/End Time:** Set the starting time and ending time for each day that pickups are available. +- **Pickup Time Interval to Allow Pickup Planning:** Define Pickup Time intervals to ensure that pickups are spaced out with adequate time to manage the number of pickups at any given time. +- **Pickup Time Delay to Allow for Required Product Preparation Time:** Setup a pickup delay to ensure that you have the required preparation time for products to be available. +- **Make Pickup Time Optional:** Allow pickup time to be optional in cases where a customer should only have the option to choose a Pickup Time but not be required to do so. +- **Limit Local Pickup Time to Local Shipping Methods Only:** Instead of always presenting a Pickup Time option on checkout only present the Pickup Time on the WooCommerce "Local Pickup" shipping method. + - **Ability to limit to specific Shipping Zones.** Pickup Time can be limited to only specific Shipping Zones. +- **"Ready for Pickup" Order Status:** A custom Order Status of "Ready for Pickup" is available in order to better track the progress of your orders. + - **Custom "Ready for Pickup" customer notification email template.** A custom "Email notification" can be setup under "WooCommerce -> Settings -> Emails" for when an Order is changed to "Ready for Pickup". == Installation == = Using The WordPress Dashboard = 1. Navigate to the 'Add New' in the plugins dashboard -2. Search for 'woocommerce-local-pickup-time' +2. Search for 'WooCommerce Local Pickup Time Select' 3. Click 'Install Now' 4. Activate the plugin on the Plugin dashboard = Uploading in WordPress Dashboard = -1. Navigate to the 'Add New' in the plugins dashboard -2. Navigate to the 'Upload' area -3. Select `woocommerce-local-pickup-time.zip` from your computer -4. Click 'Install Now' -5. Activate the plugin in the Plugin dashboard +1. Download a zip file of the plugins, which can be done from the WordPress plugin directory +2. Navigate to 'Add New' in the plugins dashboard +3. Click on the "Upload Plugin" button +4. Choose the downloaded Zip file from your computer with "Choose File" +5. Click 'Install Now' +6. Activate the plugin in the Plugin dashboard = Using FTP = -1. Download `woocommerce-local-pickup-time.zip` -2. Extract the `woocommerce-local-pickup-time` directory to your computer -3. Upload the `woocommerce-local-pickup-time` directory to the `/wp-content/plugins/` directory +1. Download a zip file of the plugins, which can be done from the WordPress plugin directory +2. Extract the Zip file to a directory on your computer +3. Upload the `woocommerce-local-pickup-time-select` directory to the `/wp-content/plugins/` directory 4. Activate the plugin in the Plugin dashboard === Usage === -Navigate to `WooCommerce -> Settings -> General`, edit your start and end times for daily pickups, set your days closed and time interval for pickups. +Navigate to `WooCommerce -> Settings -> Shipping -> Local Pickup Time settings`, to edit your start and end times for daily pickups, set your days closed and time interval for pickups. == Frequently Asked Questions == = Things aren't displaying properly = -Go to `WooCommerce -> Settings -> General` and Save Changes to trigger the options to update. - -Make sure to set your Timezone on the WordPress Admin Settings page. +- Go to `WooCommerce -> Settings -> Shipping -> Local Pickup Time settings` and "Save Changes" to trigger the options to update. +- Make sure to set your Timezone on the WordPress Admin Settings page to a proper value that is not a UTC offset. +- If "Limit to Local Pickup Shipping Methods?" is checked in the "Local Pickup Time settings", ensure you have a Shipping Zone that includes a "Local Pickup" Shipping Method. Additionally, make sure that each "Local Pickup" Shipping Method you want to have a "Pickup Time" has it enabled. = How do I change the location of the pickup time select box during checkout? = @@ -70,9 +80,20 @@ The location, by default, is hooked to `woocommerce_admin_order_data_after_billi 3. Local Pickup Shipping Method Settings Screen 4. Order Listing Includes Pickup Date/Time 5. Order Details Screen Includes Pickup Date/Time +6. Ready for Pickup Order Email Notification == Changelog == +### 1.4.1 +#### Changed +- Updated the README to provide details and usage on the latest functionality and features. + +#### Fixed +- Possible PHP Fatal Error when using new Local Pickup association functionality. + +#### Added +- Added new screenshot for "Ready for Pickup" email notification. + ### 1.4.0 #### Changed - Updated WordPress & WooCommerce Supported Versions. @@ -80,7 +101,7 @@ The location, by default, is hooked to `woocommerce_admin_order_data_after_billi #### Fixed - Updated Plugin Development Dependencies -#### Adds +#### Added - Added New Ready for Pickup Order Status & Customer Email - Added Pickup Time Required & Local Pickup Link Capabilities diff --git a/woocommerce-local-pickup-time.php b/woocommerce-local-pickup-time.php index 7337b23..e493606 100644 --- a/woocommerce-local-pickup-time.php +++ b/woocommerce-local-pickup-time.php @@ -12,7 +12,7 @@ * Plugin Name: WooCommerce Local Pickup Time Select * Plugin URI: https://github.com/WC-Local-Pickup/woocommerce-local-pickup-time * Description: Add an an option to WooCommerce checkout pages for Local Pickup that allows the user to choose a pickup time. - * Version: 1.4.0 + * Version: 1.4.1 * Requires at least: 4.9 * Requires PHP: 7.2 * Author: Tim Nolte