动作和过滤器。在我的 WooCommerce 网站上,当我从购物车中删除产品时,我收到以下消息:
"<product name>" removed. Undo?
查看 WooCommerce 源代码我发现了一个条件语句class-wc-form-header.php
作为函数的一部分update_cart_action()
:
$removed_notice .= ' <a href="' . esc_url( WC()->cart->get_undo_url( $cart_item_key ) ) . '">' . __( 'Undo?', 'woocommerce' ) . '</a>';
但我找不到使用它来消除此通知的方法。我已经尝试过 css 解决方案,但它不起作用:
PS:这可能不是困扰我的代码片段,但它是我发现的唯一一个似乎有意义的代码片段。
我怎样才能删除这个烦人的通知?
Thanks.
您可以通过不同的方式做到这一点:
1. 覆盖notices.php模板:
你有第一个(如果还没有完成)复制 woocommercetemplates
文件夹位于您的活动子主题或主题中,然后重命名它woocommerce
。然后打开/编辑notices/notices.php
并尝试替换代码:
<?php
/**
* Show messages
* ... Blabla ... / ... blabla ...
* @version 1.6.4
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
if ( ! $messages ){
return;
}
?>
<?php foreach ( $messages as $message ) : // Change your template code from here
if ( strpos( $message, 'removed' ) === false ) : ?>
<div class="woocommerce-info"><?php echo wp_kses_post( $message ); ?></div>
<?php endif;
endforeach; ?>
2.使用钩子:
function remove_added_to_cart_notice()
{
$notices = WC()->session->get('wc_notices', array());
foreach( $notices['notices'] as $key => &$notice){
if( strpos( $notice, 'removed' ) !== false){
$added_to_cart_key = $key;
break;
}
}
unset( $notices['notices'][$added_to_cart_key] );
WC()->session->set('wc_notices', $notices);
}
add_action('woocommerce_before_single_product','remove_added_to_cart_notice',1);
add_action('woocommerce_shortcode_before_product_cat_loop','remove_added_to_cart_notice',1);
add_action('woocommerce_before_shop_loop','remove_added_to_cart_notice',1);
3.使用CSS(类似的东西):
.woocommerce-cart .woocommerce-message {
display: none !important;
}
参考:
- Wordpress - Woocommerce 删除“已添加到购物车”消息
- github 上的新 wc-notice-functions.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)