-
-
Save mi5t4n/21bc457212e5edc55e23f234b082d2b0 to your computer and use it in GitHub Desktop.
| <?php | |
| /** | |
| * Hide or display add to cart button based on opening hours. | |
| */ | |
| function prefix_woocommerce_is_purchasable( $is_purchasable, $product ) { | |
| // Get the store id. | |
| $store_id = get_post_field( 'post_author', $product->get_id() ); | |
| // Get the store info. | |
| $store_info = dokan_get_store_info( $store_id ); | |
| // Get the store time enabled or not. | |
| $is_dokan_store_time_enabled = $store_info['dokan_store_time_enabled']; | |
| // If the store time is enabled, check whether the store is open or not. | |
| // Else the store is open. | |
| if ( 'yes' === $is_dokan_store_time_enabled ) { | |
| $is_purchasable = dokan_is_store_open( $store_id ); | |
| } else { | |
| $is_purchasable = true; | |
| } | |
| return $is_purchasable; | |
| } | |
| add_filter( 'woocommerce_is_purchasable', 'prefix_woocommerce_is_purchasable', 10, 2 ); |
Hello! Could this code be put only for some categories of stores?
@cromapc
yes, you can but we need to tweak the code a little bit.
Hello @mi5t4n ,
Sorry, do you happen to know how to apply $is_purchasable for docan live chat button? I can't find a solution anywhere on how to return the live chat button if the woocommerce_is_purchasable filter is applied to the item.
@renrax I think you can use $product->is_purchasable() inside the wp_enqueue_scripts hook load conditionally load the live chat button.
@mi5t4n
Thanks, I tried it, but it didn't work, maybe not enough experience. So I just changed in the core of the plugin module
// chat button on product page
add_action( 'woocommerce_after_add_to_cart_button', [ $this, 'render_live_chat_button_product_page' ] );
on
// chat button on product page
add_action( 'woocommerce_single_product_summary', [ $this, 'render_live_chat_button_product_page' ], 100 );
It's tough, but I couldn't do it any other way. In any case, thanks for the tip.
@renrax Glad to help. Let me know, if you need help with anything.
Hi Sagar Tamang,
Is there any way to use this code for disabling a specific shipping method? In an example given, if i want to use one "flat rate" method for the same delivery and if the store closes, i want this method to not appear. If you can give me a hand on this problem it would be much appreciated, either way, thanks for the code as it is.