基于时间启用/禁用WooCommerce添加到购物车功能

时间:2018-05-02 14:42:47

标签: php wordpress woocommerce

我正在寻找一种方法来实现这个目标:

  • 从星期一到星期日下午5点到下午2点,启用了添加到购物车,在此时间之前或之后,需要禁用“添加到购物车”按钮。

  • 在完整的一天,商店关闭,因此禁止添加到购物车。

我发现这个代码段禁用了添加到购物车,但没有时间和日期规范:

/**
 * @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 :(得分:1)

这是让你开始的东西,这段代码将检查今天是否是星期二,如果是,那么将禁用添加到购物车功能。

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

这将是一个类似的过程,添加启用/禁用购物车的其他时间标准。

答案 1 :(得分:0)

我试图编写自己的代码片段,这是我迄今为止取得的成就:

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

 }
}