结帐页面中的Woocommerce延期交货通知

问题描述 投票:1回答:1

我正在尝试添加一个操作,该操作将检查当前仅在后退订单中可用的产品是否正在检出 - 如果是一个或多个,我想在结帐表单之前显示消息。

我到目前为止:

add_action( 'woocommerce_before_checkout_form', 'wnd_checkout_message', 10 );
function wnd_checkout_message( ) {
echo '<div class="wnd-checkout-message"><h3>The message goes here!</h3></div>';}

但是,我该如何检查目前正在检查的退回产品/是否在购物车中?

php filter woocommerce conditional action
1个回答
3
投票

将此代码添加到functions.php文件中。如果购物车中的某件商品延期交货,它会显示通知。

add_action( 'woocommerce_before_checkout_form', 'es_checkout_add_cart_notice' );

function es_checkout_add_cart_notice() {
    $message = "You have a backorder product in your cart.";

    if ( es_check_cart_has_backorder_product() ) 
        wc_add_notice( $message, 'error' );

}

function es_check_cart_has_backorder_product() {
    foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
        $cart_product =  wc_get_product( $values['data']->get_id() );

        if( $cart_product->is_on_backorder() )
            return true;
    }

    return false;
}
© www.soinside.com 2019 - 2024. All rights reserved.