我正在尝试在购物车中的商品下显示消息。如果产品延期交货,它会显示延期交货通知,因此我希望在没有延期交货通知显示时显示另一条消息。
我尝试的代码是:
// Backorder notification
if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) {
echo '<p class="backorder_notification">' . esc_html__( 'Available in 3-5 Working Days', 'teencode' ) '</p>';
}
else; {
echo '<p class="backorder_notification">' . esc_html__( 'Available Next Day', 'teencode' ) '</p>';
}
但是,查看购物车时,它不显示消息。
我哪里错了?
答案 0 :(得分:1)
您可以根据代码(条件)尝试使用 woocommerce_before_cart
连接的自定义函数来显示自定义通知。你的代码中有很多小错误。
以下是代码:
add_action( 'woocommerce_before_cart', 'custom_backorders_notifications' );
function custom_backorders_notifications(){
$backorders_notification = false;
foreach( WC()->cart->get_cart() as $cart_item ):
$product_id = $cart_item['product_id']; // get the product ID for the current cart item
$item_qty = $cart_item['quantity']; // get the cart item quantity
$product = wc_get_product($cart_item['product_id']); // get the $product OBJECT
// Backorder notification with your existing (untested) condition
if ( $product->backorders_require_notification() && $product->is_on_backorder( $item_qty ) ){
$backorders_notification = true;
break;
}
endforeach;
if ( $backorders_notification )
echo '<p class="backorder_notification">' . esc_html__( "Available in 3-5 Working Days", "teencode" ) . '</p>';
else
echo '<p class="backorder_notification">' . esc_html__( "Available Next Day", "teencode" ) . '</p>';
}
此代码经过测试并有效。
代码进入活动子主题(或主题)的function.php文件。或者也可以在任何插件php文件中。