首页 > 解决方案 > 根据缺货状态和一天中的时间在购物车页面上显示 div

问题描述

我写了一个声明,允许我根据订单是否有缺货产品(这有效)在结帐页面上回显一个 DIV,但我也希望它基于一天中的时间。

这是我的代码:

add_action( 'woocommerce_before_checkout_form', 'redpakket_items_checkout_notice' );
function redpakket_items_checkout_notice() {
    $found = false;

    foreach( WC()->cart->get_cart() as $cart_item ) {
        if( $cart_item['data']->is_on_backorder( $cart_item['quantity'] ) ) {
            $found = true;
            break;
        }
    }
    date_default_timezone_set("Europe/Amsterdam");
    if( in_array(date("H"), array("22", "23")) && in_array(date("N"), array("1", "2", "3", "4")) ||  $found) {
        echo '<div>Test</div>';
    }
}

谁能告诉我我在这里做错了什么?

标签: phpif-statementwoocommerce

解决方案


也许你应该打印输出?你的变量,看看他们是否已经满足

只需满足其中一个||条件即可

date_default_timezone_set("Europe/Amsterdam");

$hour = date("H");
$day_of_the_week = date("N");

echo 'f = ' . $found . '<br>';
echo 'h = ' . $hour . '<br>';
echo 'd = ' . $day_of_the_week . '<br>';

if( in_array($hour, array("12", "23")) && in_array($day_of_the_week, array("1", "2", "3", "4")) && $found ) {
    echo '<div>Test</div>';
} else {
    echo 'not';
}

推荐阅读