我正在使用woocommerce version 2.3.13
,我希望更改woocommerce messages
的位置,例如“产品已成功添加到购物车”,当我点击“添加到购物车”时,它会显示在产品页面的顶部“按钮。
我希望此消息出现在其他地方。
通过删除“woocommerce_show_messages
”挂钩上的“woocommerce_before_single_product
”,我已经厌倦了很多解决方案,包括this
代码:remove_action( 'woocommerce_before_single_product', 'woocommerce_show_messages' );
然后调用woocommerce_show_messages();
函数我希望消息显示但没有运气。
任何人都可以帮助我。
修改
我忘了提到我正在使用店面主题并为单个产品使用自定义模板。
默认情况下,这些消息会显示在页面顶部。
答案 0 :(得分:2)
消息'产品已成功添加到购物车'是woocommerce通知。 这些消息由函数
打印 <?php wc_print_notices(); ?>
尝试在模板中更改此功能的位置。
通过挂钩添加通知
add_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 );
add_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
STOREFRONT主题编辑: **适用于Woocoommerce:3.1.2 +店面:2.2.5 **
在店面主题中,wc_print_notices
被挂钩到storefront_content_top
所以要从店面主题的顶部删除邮件,您需要在functions.php
remove_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 ); /*Archive Product*/
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 ); /*Single Product*/
remove_action( 'storefront_content_top', 'storefront_shop_messages', 1 );
并添加功能
wc_print_notices();
您想要出现通知的任何地方。
编辑:消息不会出现在单个产品页面和存档产品页面上。虽然它们可能出现在任何其他的woocommerce页面上(购物车,结账等)。
答案 1 :(得分:1)
这适合我(WooCommerce 3.2+)(基于this answer @LoicTheAztec)
add_action( 'wp_head', 'reposition_sf_messages' );
function reposition_sf_messages(){
if( is_product() ) {
remove_action( 'storefront_content_top','storefront_shop_messages',15 );
}
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 ); /*Single Product*/
add_action('woocommerce_product_meta_end', 'storefront_shop_messages', 1 );
}
答案 2 :(得分:0)
如果有人仍在寻找解决方案,那就去吧。
你可以使用类似的东西
remove_action( 'woocommerce_before_single_product', 'woocommerce_output_all_notices', 10 );
现在把这段代码放在你想显示通知的地方。
<?php wc_print_notices(); ?>
答案 3 :(得分:-1)
你试过这个:
remove_action( 'woocommerce_before_single_product', 'woocommerce_show_messages' );
add_action( 'woocommerce_after_single_product', 'woocommerce_show_messages', 15 );
此处third parameter
适用于positioning priority
答案 4 :(得分:-1)
我认为这会对你有帮助............
add_action('woocommerce_before_my_page', 'wc_print_notices', 10);
现在转到您希望显示消息的页面,然后添加
<?php
do_action( 'woocommerce_before_my_page' );
?>
答案 5 :(得分:-1)
这是在主题的functions.php中添加的完整代码。
function move_woocommerce_message(){
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
add_action( 'woocommerce_single_product_summary', 'wc_print_notices', 35 );
}
add_filter('wp', 'move_woocommerce_message');