Я ищу способ сделать это:
С понедельника по воскресенье с 17:00 до 14:00 добавление в корзину включено, до или после этого времени кнопка добавления в корзину должна быть отключена.
Во вторник полный день Магазин закрыт, поэтому добавление в корзину отключено.
Я нашел этот фрагмент, чтобы отключить добавление в корзину, но без указания времени и дня:
/**
* @snippet WooCommerce Holiday/Pause Mode
* @how-to Watch tutorial @ https://businessbloomer.com/?p=19055
* @sourcecode https://businessbloomer.com/?p=20862
* @author Rodolfo Melogli
* @testedwith WooCommerce 2.6.4
*/
// Trigger Holiday Mode
add_action ('init', 'bbloomer_woocommerce_holiday_mode');
// Disable Cart, Checkout, Add Cart
function bbloomer_woocommerce_holiday_mode() {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
add_action( 'woocommerce_before_main_content', 'bbloomer_wc_shop_disabled', 5 );
add_action( 'woocommerce_before_cart', 'bbloomer_wc_shop_disabled', 5 );
add_action( 'woocommerce_before_checkout_form', 'bbloomer_wc_shop_disabled', 5 );
}
// Show Holiday Notice
function bbloomer_wc_shop_disabled() {
wc_print_notice( 'Our Online Shop is Closed Today :)', 'error');
}
Я плохо говорю по-английски, но я надеюсь, что вы можете мне помочь.
Вот что вам нужно для начала: этот фрагмент кода проверит, сегодня вторник, и если это так, то функция добавления в корзину будет отключена.
function bbloomer_woocommerce_holiday_mode() {
$disable_cart = my_wc_disable_add_to_cart();
if ( $disable_cart ) {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment', 20 );
add_action( 'woocommerce_before_main_content', 'bbloomer_wc_shop_disabled', 5 );
add_action( 'woocommerce_before_cart', 'bbloomer_wc_shop_disabled', 5 );
add_action( 'woocommerce_before_checkout_form', 'bbloomer_wc_shop_disabled', 5 );
}
}
function my_wc_disable_add_to_cart() {
// Tuesday is day number 2 of the week
$day_of_week = date("w", current_time());
if ( $day_of_week === 2 )
return true;
return false;
}
Это будет аналогичный процесс, добавляющий другие временные критерии для включения / отключения корзины.
Я пытаюсь написать свой собственный фрагмент, и это то, чего я до сих пор добился:
add_action( 'wp_head', 'disable_checkout_sunday' );
function disable_checkout_sunday(){
if (date(D) == "Sun"){
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart');
remove__action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_login_form');
remove_action( 'woocommerce_before_checkout_form', 'woocommerce_checkout_coupon_form');
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_order_review');
remove_action( 'woocommerce_checkout_order_review', 'woocommerce_checkout_payment');
}
}