[英]How to display message wc_print_notice on a custom page
我有一个从https://businessbloomer.com/woocommerce-check-product-category-cart/得到的片段:
/*
* @snippet Check if Product Category is in the Cart - WooCommerce
* @how-to Watch tutorial @ https://businessbloomer.com/?p=19055
* @sourcecode https://businessbloomer.com/?p=72900
* @author Rodolfo Melogli
* @testedwith WooCommerce 3.1.2
*/
add_action('woocommerce_before_cart', 'bbloomer_check_category_in_cart');
function bbloomer_check_category_in_cart() {
// Set $cat_in_cart to false
$cat_in_cart = false;
// Loop through all products in the Cart
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
// If Cart has category "download", set $cat_in_cart to true
if ( has_term( 'download', 'product_cat', $cart_item['product_id'] ) ) {
$cat_in_cart = true;
break;
}
}
// Do something if category "download" is in the Cart
if ( $cat_in_cart ) {
// For example, print a notice
wc_print_notice( 'Category Downloads is in the Cart!', 'notice' );
// Or maybe run your own function...
// ..........
}
}
如果产品类别在购物车中,它会显示一条通知,但它会通过购物车页面上的wc_print_notice
显示消息。 我想通过短代码或任何建议在自定义主题页面模板上显示此消息。
怎么样:
// modify the function above
if ( $cat_in_cart )
{
$msg = 'Category Downloads is in the Cart!';
wc_print_notice( $msg, 'notice' );
return $msg;
}
return null;
...
// create a new function for the shortcode
// it can be after the above function
add_shortcode( 'myshortcode', 'myshortcode_func' );
function myshortcode_func( $atts ) {
return (($msg = bbloomer_check_category_in_cart()) !== null)
? '<div class="msg">' . esc_html ($msg) . '</div>'
: ''
;
}
然后只需在页面内容中添加短代码。
[myshortcode]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.