我正在尝试添加一项操作,该操作将检查当前仅在延期订单中提供的产品是否正在检出 - 如果一个或多个,我想要在结帐表单前显示一条消息。
我已经走到了这一步:
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>';}
但是,我如何检查目前正在检查后退产品/是否在购物车中?
答案 0 :(得分: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;
}