繁体   English   中英

如何在自定义页面上显示消息 wc_print_notice

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM