Временное включение / отключение WooCommerce для добавления в корзину - PullRequest
0 голосов
/ 02 мая 2018

Я ищу способ сделать это:

  • С понедельника по воскресенье с 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');
} 

Мой английский не очень хорош, но я надеюсь, что вы мне поможете.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Я пытаюсь написать свой собственный фрагмент, и вот чего я достиг:

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');

 }
}
0 голосов
/ 02 мая 2018

Вот кое-что для начала, этот фрагмент кода проверит, если сегодня вторник, и если это так, то функция добавления в корзину будет отключена.

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;
}

Это будет аналогичный процесс с добавлением других временных критериев для включения / выключения корзины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...