WC Pickup Store

Description

WC Pickup Store is a shipping method that lets you to set up a custom post type “store” to manage stores in WooCommerce and activate them for shipping method “Local Pickup” in checkout page. It also includes several options to show content by Widget or a WPBakery Page Builder component. Configuration of shipping costs are also available globally or per stores. More about documentation and filter usage in my website keylormendoza.com

Check or request a custom PRO add-on here

Features And Options:

  • Shipping costs globally or per stores.
  • Compatible with WPBakery Page Builder with its own addon.
  • Widget option.
  • Dropdown of stores on the Checkout page.
  • Local pickup details in thankyou page, order details and emails.
  • Archive template is now available.
  • All templates from /wc-pickup-store/templates/ can be overridden in your custom themes.
  • Filters and actions are available throughout the code to manage your own custom options.
  • Font Awesome and Bootstrap CSS libraries are included in the plugin. You can disable them from the plugin configuration page
  • Shipping email notification to stores in the store admin page
  • Order and orderby options
  • Shipping costs by flat rate or percentage, by method or per stores
  • Filter wps_settings_data to edit shipping title and other settings
  • Store details on Checkout page. Includes filters, template and JS trigger pickup_store_selected
  • Multicountry stores are available. Just choose a country per store and they will be filtered on the Checkout page.
  • NEW Tax handling for WC Pickup Store shipping method option (v1.7.0)

Some Useful Hooks

These are some useful filters and actions that you might need to extend the plugin functionalities

wps_store_query_args to edit the query of stores
wps_no_stores_availables_message message to show when no stores are available to display in the Checkout
wps_first_store choose the first selected store
wps_store_pickup_cost_label label for store pickup costs
wps_shipping_costs override method shipping costs
wps_order_shipping_item_label method title with instructions
wps_subtotal_for_store_cost subtotal to calculate percentage shipping costs
woocommerce_shipping_wc_pickup_store_is_available check for shipping method availability
wps_settings_data to edit the plugin settings including the shipping title
wps_get_store_custom_fields to choose the custom fields to be returned in wps_stores_fields function
wps_stores_fields all custom information by store
wps_formatted_shipping_title shipping method title on Checkout
wps_disable_country_filtering disable filtering by country

Screenshots

  • WC Pickup Store shipping configurations.
  • Default Store.
  • Checkout page.
  • Order details.
  • VC element.
  • VC element Result.
  • Widget Element.
  • Widget Element Result.
  • Published store validation.
  • WC error after store validation.
  • Email notification
  • Shipping cost by shipping method
  • Shipping cost per stores
  • Order Email Notification
  • Order and Orderby options
  • Store details on Checkout page
  • Filtering stores by Country
  • Default label in Store picker on the Checkout page

Installation

Requires WooCommerce

  1. Upload the plugin files to the /wp-content/plugins/wc-pickup-store directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. Go to settings page from Menu > Stores > Settings or the shipping methods page in WC to activate WC Pickup Store shipping method.
  4. Done.

FAQ

How to setup?

Just activate the plugin, go to settings page and enable the shipping method. Customize the shipping method title, default store and checkout notification message.

How to manage stores?

Go to Menu > Stores > All Stores > Add New

Can I edit the store templates?

Yes, you can override all the templates. Just copy from /plugins/wc-pickup-store/templates/ to /theme/template-parts/. Single store and archive page might be overriden in /theme/ directory as WordPress does.

How do I replace or remove waze icon?

Simply use filters wps_store_get_waze_icon or wps_store_get_vc_waze_icon to manage waze icon

Can I set a default store in checkout?

Yes, just go to Menu > Appearance > Customize > WC Pickup Store > Default Store. Also you can use the filter wps_first_store to do that

Can I set custom page without using WPBakery Page Builder?

The shortcode functionality had been removed since previous versions but since version 1.5.13 you can use the archive-store.php located in the plugin templates directory

Is there a way to add a price for the shipping method?

Fortunately since version 1.5.13 the option to set custom costs by shipping method or per stores is available. Hope you enjoy it! Update 1.5.21 let you calculate shipping costs by flat rate or percentage

Can I send an email to the store with the order details, is that possible?

Sure, now you can add an email address into the store admin page and it will be notified on order sent to this store.

Can I translate the shipping method title?

You can use the filter wps_settings_data with the key title to create a custom valid translation for the title. Available since version 1.5.22

How does the multicountry stores work?

First, this functionality will work if your Shop is enabled to sell to specific countries, if not, you must to update all the stores to the default Shop country using the link on the notice about this feature (available since version 1.5.24). Then, you just have to choose a country for each store on the store settings page.

How can I manage tax options for this shipping method?

View more information about tax handling in this documentation

Reviews

zosun 10, 2024
Great idea but I only see 3 of my 7 stores and on the confirmation email is just says “Pickup Store” not where the store is located. Checked support to see if there were solutions and I see similar problems but not any fixes. Has a lot of potential but at this point it does not work (for me and I have a very simple 2 product woocommerce install)
kɔnyasun 23, 2023 2 replies
i got this message : WP Warning: This plugin has not been tested with your current version of WordPress (6.3.2) WooCommerce (8.2.1) This plugin is incompatible with the enabled WooCommerce feature ‘High-Performance Order Storage (HPOS)’, it shouldn’t be activated thanks!
liyasun 11, 2023
I was searching for this a long time. Just simple add more than one local pickups stores. I am using Avada with the Avada layouts and at first it seemed not be working. But with some support of the developer we found it was working just fine but had to tweak some basic things. Great support from a very helpful guy! 🙂
Read all 24 reviews

Contributors & Developers

“WC Pickup Store” is open source software. The following people have contributed to this plugin.

Contributors

“WC Pickup Store” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “WC Pickup Store” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.8.9

  • Deprecated: Function wps_show_store_in_admin from action woocommerce_admin_order_data_after_billing_address removed
  • Update: Chosen store id saved to user and order meta data in wps_store_save_order_meta
  • New: Function wps_wc_admin_order_fields from filter woocommerce_admin_shipping_fields to display stores selector in admin shipping details
  • New: Function wps_wc_process_shop_order_meta from action woocommerce_process_shop_order_meta to process store update on shop order update
  • New: Cost type selector from settings page loading using filter wps_costs_type_options
  • New: Shipping cost type calculation cart_total_weight added to wps_get_calculated_costs
  • Improvement: Store field description for shipping cost in wps_store_metabox_details_content
  • Improvement: Class WC_PICKUP_STORE initialization
  • Update: Check for compatibility with WP 6.7.1 and WC (Legacy) 9.4.2

1.8.8

  • Fix: Reported issue with title that was reseting to first store after selecting certain stores from dropdown on the Checkout in wps_store_get_store_admin
  • Fix: Reported issue of undefined class WC_PICKUP_STORE resolved in wps_store_shipping_method_init

1.8.7

  • Improvement: Libraries for Bootstrap and Font Awesome are now not loading by default
  • Fix: Undeclared property $plugin_version in class WC_PICKUP_STORE
  • Fix: Reported metabox error when all countries are allowed for shipping
  • Fix: Function wps_store_get_store_admin to get all stores for admin and FE view
  • Update: Check for compatibility with WP 6.6.1 and WC (Legacy) 9.2.3

1.8.6

  • Update: Check for compatibility with WC HPOS in wps_show_store_in_admin, wc_reordering_order_item_totals, wps_get_email_address, wps_wc_order_get_formatted_shipping_address and wps_store_save_order_meta
  • Improvement: Action woocommerce_checkout_update_order_meta replaced by woocommerce_checkout_create_order in wps_store_save_order_meta
  • Update: Replace get_post_meta with native wps_get_post_meta in wps_store_id_column_content and wps_store_metabox_details_content
  • Review: Code review in wps_locate_template
  • New: Filter wps_store_widget_query_args for all the query args in widget display in class-widget-stores.php
  • New: Filter wps_store_widget_query_args for all the query args in widget display for WPBakery in class-vc_stores.php
  • Update: Check for compatibility WC & WP

1.8.5

  • Update: Check for compatibility with WP y WC
  • Update: Check for compatibility with PHP+8
  • New: Custom setting to override wps_store_select_first_option filter for dropdown first option text
  • Fix: Array validation in wps_store_validate_checkout
  • Fix: Validation added to wps_store_country_notice to remove admin country notification
  • Update: Replacement for deprecated function get_page_by_title

1.8.4

  • Update: Check for compatibility

1.8.3

  • Fix: Issues in query that affects all the post types.
  • Update: Check for compatibility

1.8.2

  • Fix: Multisite validation if WC plugin is not active
  • Improvement: Validations with country filtering notice and functionality
  • Fix: Undefinded value in function wps_store_row_layout with variable $country_to_filter
  • Fix: Condition to prevent undefined variable in function wps_get_chosen_shipping_method

1.8.1

  • Improvement: Admin notices for validations
  • Update: Check for compatibility

1.8.0

  • New: Actions wps_miscellaneous_admin and wps_save_post
  • New: Filter wps_localize_script
  • Improvement: Code readability

1.7.3

  • Update: Template .pot file for translations.
  • Update: es_CR and es_ES translations

1.7.2

  • Fix: Default information for shipping address

1.7.1

  • Remove: Function wps_get_tax_sufix
  • New: Shipping order details replaced by Store information
  • Fix: Some fixes from previous versions
  • Improvement: Notice when country field was updated visible on store page was removed
  • WC Compatibility check

1.7.0

  • New: Tax handling for WC Pickup Store shipping method
  • Fix: Deprecated mark for function wps_get_chosen_shipping_method removed
  • New: French translations files, thanks to Christophe Pouillet

1.6.3

  • New: Customizer option to select the default label as the first option in the dropdown instead of using a store
  • New: Filter wps_notice_store_validation for message on the Checkout validation for non selected store
  • New: Function wps_get_store_id_by_name to get store_id by store_name
  • Remove: Unused woocommerce_after_shipping_calculator action for layout in function wps_store_row_layout

1.6.2

  • Fix: Undefined function wps_get_chosen_shipping_method, now it is deprecated

1.6.1

  • New: Filter wps_store_select_first_option to change the first option in the store select field
  • New: Filter wps_stores_dropdown to wrap select stores HTML tag
  • New: Custom message for cart page

1.6.0

  • Update: Validation to disable filtering by country using filter wps_disable_country_filtering or custom option from settings page
  • Improvement: Language .pot file and plugin textdomain
  • Fix: Network activation

1.5.29

  • Improvement: Documentation
  • Fix: Remove validation to save default country

1.5.28

  • Fix: Default country in admin store page from previous version in includes/post_type-store.php

1.5.27

  • Remove: esc_attr from wps_stores_fields in includes/wps-functions.php
  • Update: Country data in products listing in includes/post_type-store.php
  • New: show_in_rest parameter for Custom Post Type
  • Remove: Unused template file wrapper-store.php added to includes/ directory
  • New: return array with keys in wps_store_get_store_admin in includes/wps-admin.php

1.5.26

  • Fix: Shipping rate cost on Checkout using store shipping cost in calculate_shipping in includes/wps-init.php
  • Update: Concat country code and name on stores page
  • Remove: Customer notification for store notification in wps_cc_email_headers, only new_order is available in includes/wps-functions.php

1.5.25

  • Fix: From previous 1.5.24 version
  • New: Country filter for stores admin and stores on Checkout
  • New: Country dropdown in stores admin page if Shop sells to specific countries in includes/post_type-store.php
  • New: Option to update all stores without Country wps_update_stores_without_country in includes/post_type-store.php

1.5.24

  • Fix: Apply filter position in validation of wps_shipping_method_label in includes/wps-functions.php
  • New: Filter wps_store_checkout_label in title of store dropdown options in includes/wps-functions.php
  • New: Filter wps_store_calculated_costs in includes/wps-init.php
  • Update: Improvement to accept multiple email addresses separated by comma in wps_get_email_address in includes/wps-functions.php
  • Update: Validation of WC email types to add the store admin email in wps_cc_email_headers in includes/wps-functions.php
  • New: Filter wps_cc_on_email_types for accepted email types in includes/wps-functions.php
  • New: Function and filter wps_get_post_meta to return all custom meta using filter in includes/wps-functions.php
  • New: Stores dropdown loads using select2 library and option might be disable from plugin settings in includes/wps-init.php and stores.js
  • New: Functions wps_check_countries_count and wps_stores_filtering_by_country to allow multicountries stores and Country filter on the stores dropdown in includes/post_type-store.php
  • Update: Param meta_query updated to use relation AND instead of OR on custom stores query in includes/wps-admin.php

1.5.23

  • Fix: Function wps_locate_template to load local templates with locate_template
  • Fix: Unnecessary parameter $store_id removed in filter wps_stores_fields
  • New: Setting hide_store_details to hide/show store details in the Checkout page
  • Update: Template validation if exists in stores.js

1.5.22

  • Fix: Option none in Shipping costs type to invalidate shipping costs calculation in includes/wps-init.php
  • New: Filter wps_settings_data to edit the plugin settings including the shipping title, in includes/wps-init.php
  • New: wp_localize_script wps_ajax.stores to get all custom fields from stores with wps_stores_fields function and filter in includes/wps-functions.php
  • New: Filter wps_get_store_custom_fields to choose the custom fields to be returned in wps_stores_fields function, in includes/wps-functions.php
  • New: Function wps_locate_template to get the template file path from plugin or custom theme
  • New: Store details in the Checkout page
  • New: Template file selected-store-details.php to show store details on Checkout page

1.5.21

  • Fix WPBakery store component
  • Fixed span elements added to item label in includes/wps-init.php
  • Obsolete file removed in includes/wrapper-store.php
  • New percentage or flat rate shipping costs calculation, per store or shipping method

1.5.20

  • Fix filter wps_order_shipping_item_label parameter

1.5.19

  • Update textdomain as a global variable
  • New filter wps_order_shipping_item_label wrapping the shipping order/checkout label
  • New order and orderby options are added to the configuration page

1.5.18

  • Fix BS+4 conflict with .col class in includes/vc_stores.php

1.5.17

  • Fix FA+5 icon in VC template

1.5.16

  • Fixing issue with local and external libraries validation

1.5.15

  • Validation for local and external libraries
  • Function to return main instance for WC_PICKUP_STORE
  • New admin fields store_order_email and enable_order_email

1.5.14

  • Change of wp_enqueue_style instead of using wp_register_style with bootstrap and font awesome libraries

1.5.13

  • New shipping method custom price
  • New adding shipping method price per store
  • Fix in VC element initialization
  • Fix in image custom size validation used in VC custom element
  • New Archive Template
  • New .pot file
  • Font Awesome and Bootstrap css have been included

1.5.12

  • Logo waze svg
  • Filters wps_store_get_waze_icon and wps_store_get_vc_waze_icon to manage waze icon

1.5.11

  • Single store template
  • Filter wps_store_query_args for store query args
  • Fix esc_html to print content in template
  • VC element and widget from template

1.5.10

  • Validate whether all stores are published, otherwise, shipping method is not applicable
  • Fix selected store notification in emails
  • Notification was added in admin panel
  • Editor field was added to stores

1.5.9

  • Latest stable version