Great! A new review for this plugin is coming from the people who offered the WordPress Quiz plugin.
WC Pickup Store is a WooCommerce plugin that will help you to display stores on the Checkout page as a custom shipping method and also let your customers choose a store where their orders can be picked up.
Fortunately, it has been helpful to many people so I decided to write this article to be used as a basic and advanced documentation. Plugin and store settings, filters and actions, translations file location, and other information can be found in this article.
Don’t hesitate to contact me if you think that something important is missing about this article or the plugin. By the way, this is my first article in English, I hope you enjoy it! 🙂
Now you can read a review about this plugin from WPGlob in this link.
Contact information
Plugin options
Main options
Go to Main menu > Stores > Settings to edit the main options
- Enable/Disable: Enable or disable the plugin.
- Enable stores in checkout: Enable the store to be visible in the Checkout shipping options.
- Shipping Method Title: Title for shipping method.
- Shipping Costs Type: Use costs for this shipping method. Available options:
- None (Disable)
- Flat
- Percentage
- Shipping Costs: Main cost for shipping method. It can be overridden per store.
- Enable costs per store: Manage shipping costs per store.
- Order Stores by: Order by options for the dropdown in the shipping options. Available options:
- Title
- Date
- ID
- Random
- Order: Ordering criteria. Available options:
- ASC
- DESC
- Default store: Set up the default store to be displayed in the shipping options.
- Checkout notification: Message to be displayed below the store dropdown on the Checkout page.
- Hide store details on Checkout: This option hides the store details that are displayed by default in the shipping method options for the selected store.
- Disable Bootstrap: Disable Bootstrap added by the plugin. Version: 3.3.7.
- Disable Font Awesome: Disable Font Awesomeadded by the plugin. Version: 4.7.0.
- Disable local css: Disable the stylesheet added by the plugin.
Store options
- Checkout visibility: Allows you to hide a store in the store dropdown options.
- Custom Fields: All these fields are optional but also useful:
- City
- Phone
- Email Order Notification: Email that will be notified when the store is selected on the Checkout.
- Enable order email notification: It activates the order notification for the selected store.
- Waze
- Map: Use the iframe source URL in this field.
- Short description
- Address
- Feature image
Any doubts or suggestions?
Usage
Elements
- Widget
- WPBakery Page Builder (Visual composer) element
- Archive page
- Single Store page
Templates
This plugin has different templates that could be overwritten from your theme or child theme. Just clone the files located in wc-pickup-store/templates/ to custom-theme/templates-parts/ (only archive-store.php and single-store.php are overwritten in the root of your theme). Some of the available templates:
- archive-store.php
- selected-store-details.php: Added in versión 1.5.22 to display the selected store details on the Checkout page.
- single-store.php
- wrapper-store.php: Template to display store details in a widget section.
- wrapper-vc_store.php: Template to display stores in a WPBakery Page Builder layout.
Any doubts or suggestions?
Developers
Filters
- wps_store_query_args ($query_args): Filters the main store query.
- wps_no_stores_availables_message ($message): Filters the message that appears on the Checkout when there are no stores availables.
- wps_first_store ($first_store_name): Filters the default store that appears as first option on the Checkout.
- wps_store_checkout_label ($stores_checkout_label): Filters the label that appears in the stores dropdown.
- wps_shipping_method_label ($method_title): Filters the shipping method label.
- wps_store_pickup_cost_label ($label, $selected_store): Filters the label of the selected store on the Checkout.
- wps_get_store_custom_fields ($keys_arr): Filters the custom fields keys that will be prepared for the Checkout.
- wps_stores_fields ($store_fields): Filters the custom fields array with the values that will be displayed on the Checkout.
- wps_settings_data ($value, $setting_key, $settings): Filters the values of the plugin settings.
- wps_order_shipping_item_label ($shipping_label, $notification_message): Filters the label for selected store that appears in the order details.
- wps_subtotal_for_store_cost ($cart_subtotal): Filters the subtotal to be used in the percentage store shipping calculation.
- wps_store_calculated_costs ($costs, $costs_type): Filters the store shipping cost.
- wps_store_get_waze_icon ($waze_icon_img):
- wps_store_get_vc_waze_icon ($waze_icon_img):
- wps_store_city ($store_city, $store_id): Filters the store title displayed in the WPBakery Page Builder element.
Actions
- wps_before_archive_store_content/wps_after_archive_store_content ($store_id)
- wps_before_single_content/wps_after_single_content ($store_id)
- wps_before_widget_content/wps_after_widget_content ($store_id)
- wps_before_vc_content/wps_after_vc_content ($store_id)
Translations
This plugin has a .pot file located in the /languages/directory. Also, it includes es_CR translation and it’s been translated to cs_CZ language by a collaboration.
60 replies on “WC Pickup Store”
Hi,
Your plugin is great. But i have an issue.
I’m using wc pickup store v 1.8.6 and woocommerce v 8.7.0. Certainly due to the woocommerce version upgrade, the names of the stores disapear from the order recap and in the json answer of a GET request (tested with Insomnia). The problem is that it’s impossible to know in which store the order can be delivered. We are using Google sheet scripts to handle the various stocks for the pickups and due to this issue, we cannot handle their stocks.
Thanks
Fabrice
Hi, I like what you’ve created. Cleans up my checkout field when I have many pickup locations. Could you point me in the right direction for how to change ‘select a store’ in the dropdown? My customer offers click & collect from markets, so it’s more appropriate to change that to ‘select a market’. Many thanks!!
Hey Darren
I am working in a custom setting to edit that label from the admin page of the plugin, but that version will be ready in a couple of weeks.
Meanwhile, you could change that label using this function kmchild_wps_store_select_first_option from this gist https://gist.github.com/KeylorCR/34a8cff25b7a287bf4f288c05d1e0ede
Hope it helps
Regards
Hola, quisiera cambiar la dirección de entrega en un pedido la tienda, pero no me deja cambiarlo, no sale un desplegable, únicamente el nombre de la tienda y no es editable, me puedes ayudar a hacerlo?
Hola, necesito traducir a español el mensaje que aparece bajo el metodo de envio que dice: Choose a store for picking up your oder on the Checkout page. Como puedo hacer esto?
Gracias,
Hola Paola, en este caso podrías usar Loco Translate, buscar la traducción del plugin y editar este texto. En caso que no se muestre, puede usar la opción de sincronizar la traducción para que le busque el texto y le permita traducirlo.
hey Keylor, nice plugin by the way, thanks for all the work you’ve done !! is there a way to disable the archive page ?
Hey Aziz. In case you still need this, you can use the function kmchild_register_store_post_type_args in this gist: https://gist.github.com/KeylorCR/34a8cff25b7a287bf4f288c05d1e0ede. You could also set a redirection to prevent the access to that page.
Hope it helps!
Hi Keylor, nice plugin. I am testing it but it does not send the order to the email assigned to the store.
Another thing: how can I make the name of the store where it was purchased appear in the order email? thanks!!
Hey Angel, I’ve tested this functionality and it works as expected, a copy of the order is sent to the admin of the store. Also, I am not sure what you mean by the store where it was purchased, but the chosen store name is displayed in the order details table (page and email) https://prnt.sc/dt3ACnjz6y2X
Email me in case you need further assistance.
Regards.
Hola Keylor. Lo primero felicitarte por el plugin, está genial!
Me gustaría que WC Pickup Store fuese la opción de envío predeterminada sin tener que hacer click en el radio button manualmente. ¿Cómo puedo conseguirlo?
Por otro lado, he querido ordenar las tiendas del Widget pero no existe esta opción. Los ajustes de de orden de la consulta sólo afectan al desplegable del check-out, no al widget. Estaría bien que fuesen comunes. He tenido que modificar el código del widget en class-widget-stores.php para introducir manualmente los argumentos $query_args[‘orderby’] = ‘title’ y $query_args[‘order’] = ‘asc’.
Muchas gracias y buen día.
Hola Esteban. Para el caso de mostrar como primer opción, podés usar la función array_unshift comentada en este gist https://gist.github.com/KeylorCR/f4fd4fbc85f706fb833895daf4054475#file-wps-shipping-options-reordering-php.
Para el ordenamiento en el widget, estaré agregando unas configuraciones pronto al widget. Le dejo saber cuando estén listas.
Saludos
Hola, cómo puedo hacer para que Wc Pickup Store sea la opción de metodo de envío por defecto (que esté primero en la lista de los metodos de envio en el checkout). por encima de otras opciones.
Hola Maxi, en este caso podes usar la función array_unshift comentada en este gist https://gist.github.com/KeylorCR/f4fd4fbc85f706fb833895daf4054475#file-wps-shipping-options-reordering-php.
Espero te sirva, saludos
Hello, how are you, I wanted to ask you how I can eliminate the free shipping that appears in the wc pickup plugin. Thank you
Hello Alfredo.
You can use the function kmchild_hide_shipping_if_free_is_available from this gist https://gist.github.com/KeylorCR/34a8cff25b7a287bf4f288c05d1e0ede to remove the free_shipping option
Hope it helps
Regards
Great plugin!
However the google map is not showing, I entered the link in the store config. At checkout it says “www.google.com refused to connect” Also Waze is also not being shown and i have the link configured. How do we fix this?
Hello there!
I think this is an issue related to the map service. I will be checking this issue soon.
Thank you for your report.
Regards
Hi,
I am using the WC pickup store plugin.
I have a payment method called cash on pickup.
Can I set this payment method just for one of my pickup stores?
Thank you,
Balázs
Hey Balázs, you can use a snippet like this from the function kmchild_wps_disable_payment_gateway_by_store in this gist https://gist.github.com/KeylorCR/34a8cff25b7a287bf4f288c05d1e0ede.
Also, if you need customization for this, contact me via Pro Add-ons and we’ll talk about it
Regards.
Thank you very much! 🙂
The code is working but it ruins my cart page. What would be the problem?
Thank you,
Balázs
Hi Balázs, what kind of error or problem do you have with your cart page?
If the problem persists, you can also send me a message via the contact form and attach a screenshot.
Hola, estoy tentando de traducir el mensage que aparece en el “Cart”, bajo el methodo de shipping.
Ahora esta diciendo esto : Choose a store for picking up your oder on the Checkout page. Pero me gustaria traducirlo en frances. Donde puedo hacer esto? Tengo Loco Translate pero no encontro el string para cambiarlo.
Gracias,
Nicolas
Hola Nicolas, puede actualizar el plugin a la versión 1.7.3 que resuelve el problema con la plantilla de idioma (.pot). Seguido, usando Loco Translate, sincronice la traducción y ya le debe aparecer este nuevo texto para traducir.
Saludos.
Hola Keylor, estoy intentando cambiar el mensaje “Choose a store for picking up your order on the Checkout page.” en la página de carrito, pero me es imposible. Lo he intentado con Loco Translate y también modificando el archivo .po pero no funciona de ninguna forma. ¿Podría darme alguna solución? Gracias de antemano.
Hola Fran, la nueva versión 1.7.3 resuelve un problema con la plantilla de idioma (.pot). Luego con Loco Translate, sincronice la traducción y ya le debe aparecer este nuevo texto para traducir.
Saludos
Hi, is it possible to let a customer define his default pickup location? Thanks!
Hey Kevin, you have to set the default store option as None from customizer options: http://prntscr.com/134ieh9.
Using this, the previously chosen store of a customer will be shown as default on the Checkout page.
Hope it helps.
Regards.
Amazing. Thanks!
Hola, Keylor. Muchas gracias por el plugin y por que lo ofrece gratis. Me ha ayudado mucho. Mi duda es si se puede añadir html code al campo de teléfono, como <a href=”tel…. para hacer llamada por un click a tienda desde la página de checkout?
Hola Pável, esto lo puede lograr sobreescribiendo el template selected-store-details.php en theme-custom/template-parts/ y ahí agrega el html necesario. http://prntscr.com/134iq7f
Espero le sea de ayuda.
Pura vida!
Hello!
I’m very interested in your plugin for wordpress, but i need to fill the fields using java code. Do you have some kind of api for java for your plugin. I’m already using woocomerce java api and creating products through it, but i also need to have store location can you help me with your plugin. It is very good. Thanks
Hello Ivan, I hope you are well and that my plugin is being helpful for you.
The stores are created by a Custom Post Type of WordPress and it uses custom fields to manage all the information. So in this case, you need to look for an integration based on CPT and custom fields. Unfortunately, I don’t have an API or support for external connections.
Regards
Hello, i would like to know if it is possible to define which products could be sold on specific pickup stores. Ex : product1 on storeA, products1 and 2 on storeB, etc…
Tank you
Hello Bonin, I’m sorry for the delay in attending to your message.
This is not possible with this plugin, but if you still need it I might help you with custom development to accomplish this.
Keep in touch.
Regards
Hi Keylor, I send your a message last week but not sure if you received it! I am using the “WC Pickup Store” plugin now. It helps me a lot an I really like it. However, I have 2 queries about it and hope you can help me! 1) The product is pick up on different store location and we will charge a shipping cost by the weight of it, but I can only select the “flat rate” or “percentage” on it, how can I do it? Need to upgrade to a pro version?? 2) In the “Short description”, I use it to input the office hour information for each store, but it didn’t show on the store pickup view, how can I show it to the customer? Did I need to modify any coding of the plugin? Hope to hear from you soon and have a nice day! Gary
Hello Gary, I hope you’re fine.
A PRO version is in progress for the future and for your questions:
1- You have to programmatically change the cost using the filter wps_shipping_costs based on this gist: https://gist.github.com/KeylorCR/34a8cff25b7a287bf4f288c05d1e0ede
2- To show custom data to customers into emails or any other part, you can use this gist as a guide: https://gist.github.com/KeylorCR/18cefd93ea1a350aaf1485148779036e
I really hope this helps you and thank you for using my plugin.
Regards
Hola! el plugin está muy bueno! solo tengo una duda, hay manera de hacer que cuando se seleccione la opción de pick up el cliente no tenga que llenar los datos de envío? gracias!
Hola Cecilia, en este caso debe usar un snippet adicional que valide el método de envío wc_pickup_store y le active/desactive los campos del billing o shipping que necesite. Quizás este enlace le puede ayudar: https://www.xadapter.com/hide-checkout-fields-based-selected-shipping-method/
Saludos
Hola! muy bueno el plugin. Te hago una consulta, Estoy creando un mail personalizado, con WordPress booster, para enviar un mail al cliente, avisandole que su producto ya esta listo para retirar.
Hay un shortcode para Booster en donde pueda mostrar en ese email la sucursal seleccionada por el usuario?
Porque usando [wcj_order_shipping_method] solo me trae el metodo seleccionado, pero NO que sucursal selecciono.
gracias!
Hola Luciano, para este caso el nombre de la tienda se guarda en un campo custom _shipping_pickup_stores y no tengo shortcode para Booster. Podés ver si hay un shorcode para cargar custom fields o crear un shortcode con un código similar a este:
$order_id = $order->get_id();
$store_name = get_post_meta($order_id, '_shipping_pickup_stores', true); // Get store title for this order
$store = get_page_by_title($store_name, OBJECT, 'store'); // Get the store object by the title
$store_phone = get_post_meta($store->ID, 'phone', true); //Get a custom field, phone
Te dejo un gist que te puede ayudar. https://gist.github.com/KeylorCR/18cefd93ea1a350aaf1485148779036e
Saludos
Hola, oye no se puede cambiar el idioma a español? Para que salga en español el texto
Hola Patricio, en este caso podés usar el hook wps_store_checkout_label y sobreescribir el título que se muestra con texto traducible desde el tema que estás trabajando. Saludos.
Hola Keylor gracias por el Plugin esta muy bueno.
Tengo un problemita, al instalarlo me cambia la tipografía que tengo predeterminada para mi página es algo rarisimo, pero lo probé desinstalandolo y volvio a la normalidad, que será.
Hola Fabián
En este caso, puede ser por incompatibilidad con Bootstrap ya que el plugin carga por defecto la versión 3.3.7, quizás por ahí ande el problema.
Podés desactivarlo desde las configuraciones del plugin desde Stores > Settings > Disable Bootstrap
Hola buenos días, primero que nada muchas gracias por el plugin lo he estado probando en una página y es muy bueno, una duda el plugin es compatible para multisitios? lo trate de instalar pero al activarlo no paso nada
Hola Luis, sí lo tengo instalado y funcionando en multisites, qué error te sale cuando lo activás? Podés también intentar activarlo de manera individual o revisar si es que está siendo incompatible con algún otro plugin.
Quedo atento
Muy buen plugin! funciona genial!
Un problema que me he encontrado es que para pedidos que se hacen desde fuera de mi ciudad, la opción de “Local Pickup” sigue apareciendo.
¿Como podría ocultar la opción Local Pickup y mostrarla solo para una única ciudad?
gracias!
Hola Manuel, ahorita esto no es parte del plugin, desactivar por zonas específicas, pero podés usar una implementación como esta que encontré para ocultar métodos de envío según una ubicación: https://www.xadapter.com/woocommerce-shipping-hide-shipping-methods-based-destination-country/.
Quedo atento, saludos
Hi,
Thanks for you’re great plugin.
I try to make it working with WPML, and there is no big problem, but in the admin panel, there is an error. I ask to the WPML support and they said it could be resolve by changing the line 298 in the file /wp-content/plugins/wc-pickup-store/includes/wps-init.php
from add_action(‘init’, ‘wps_store_shipping_method_init’); to add_action(‘init’, ‘wps_store_shipping_method_init’, 2);
Don’t know if you can put it, in next release? Maybe?
And I have another question, how I can change the “Shipping method title” in accordance to the language switcher of WPML?
Thanks a lot
Hello Mathieu
First, well you don’t need my update to make it work as WPML support recommends to you, just simply use remove_action(‘init’, ‘wps_store_shipping_method_init’) and then the line they said.
Also, you can use these two filters from my plugin wps_shipping_method_label, wps_store_checkout_label or this one from WC woocommerce_cart_shipping_method_full_label and add your custom title compatible with WPML or any other plugin of languages.
Thank you too and I hope it is being helpful for you
Regards
Genial el plugin! Ya lo estoy usando. Tenes idea porque en el mapa, al momento del checkout me aparece la imagen como error y dice “La página http://www.google.com ha rechazado la conexión.”
Hola Daniela
Para el mapa, el plugin acepta solo la URL que se obtiene del atributo src del iframe a insertar, no hay que agregar todo el iframe como tal. En el template se llama este campo y si agregó algo diferente entonces Google puede dar este error.
Muchas gracias por el plugin. Me ha servido de maravilla ahora que lo estoy implementanto en un sitio web para un cliente.
Muchas gracias Juan Carlos, espero que te siga siendo de mucha ayuda.
Saludos
Hi,
it would be a great extension if you could filter the stores for pickup depending on the current order (or products). Would it be possible to provide a filter hook for that and passing the WC order object to it?
Thanks in advance
Hey Andreas
Actually it can be possible by coding, maybe adding a custom field for products related to a store and after that use the filter of the plugin wps_store_query_args to update the meta_query fields.
This functionality is part of a Pro version that I am planning to develop soon.
Hope it helps
Regards
Hola
He estado probando tu plugin y funciona bien. No idea sobre que problemas de seguridad pueda tener.
Hay que agregar, tal vez en una version pro
Rate table per store
Day and time of delivery
Y un reservation for restaurant
Pregunta. porque es necesario crear un store como pagina para ser publicado, no puede ser en un modo privado y lo otro opcional, aparte de la configuración private and password protected.
Hola Teo, muchas gracias por las sugerencias, estoy planeando una versión Pro pero no tengo fecha de liberación.
Luego, ahorita se maneja de esa manera porque parte del origen del plugin fue para que se pudiera usar la misma información para el método de envío y para visualizar información de tiendas (widget, página, ocultar en Checkout, etc)