在 Woocommerce 结账中为延期交货的购物车商品添加自定义通知
Add a custom notice for backordered cart items in Woocommerce checkout
我正在尝试添加一个操作,该操作将检查购物车中是否有延期交货的产品,如果为真,则在结帐表单前显示一条消息。这是我到目前为止所拥有的,但它似乎没有用。我是不是搞砸了什么?
add_action( 'woocommerce_before_checkout_form', 'checkout_add_cart_notice' );
function checkout_add_cart_notice() {
$message = "Please allow 2-3 weeks for the custom order product.";
if ( check_cart_has_backorder_product() )
wc_add_notice( $message, 'error' );
}
function 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;
}
当购物车中有延期交货的商品时,以下代码将在结帐页面上显示自定义消息:
add_action( 'woocommerce_before_checkout_form', 'backordered_items_checkout_notice' );
function backordered_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;
}
}
if( $found ) {
wc_print_notice( __("Please allow 2-3 weeks for the custom order product.", "woocommerce"), 'notice' );
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。
我正在尝试添加一个操作,该操作将检查购物车中是否有延期交货的产品,如果为真,则在结帐表单前显示一条消息。这是我到目前为止所拥有的,但它似乎没有用。我是不是搞砸了什么?
add_action( 'woocommerce_before_checkout_form', 'checkout_add_cart_notice' );
function checkout_add_cart_notice() {
$message = "Please allow 2-3 weeks for the custom order product.";
if ( check_cart_has_backorder_product() )
wc_add_notice( $message, 'error' );
}
function 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;
}
当购物车中有延期交货的商品时,以下代码将在结帐页面上显示自定义消息:
add_action( 'woocommerce_before_checkout_form', 'backordered_items_checkout_notice' );
function backordered_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;
}
}
if( $found ) {
wc_print_notice( __("Please allow 2-3 weeks for the custom order product.", "woocommerce"), 'notice' );
}
}
代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。