我正在尝试将通知类型添加到WooCommerce wc_add_notice()
类型集(success
,notice
,error
)。称之为'warning'
,它应该比'notice'
“更严重”,但对于用户来说应该比'error'
更严重。
我开始将wp-content/plugins/woocommerce/teplates/notices/notice.php
复制到wp-content/themes/mytheme/woocommerce/notices/warning.php
。
然后我将其类名修改为woocommerce-warning
:
<?php foreach ( $messages as $message ) : ?>
<div class="woocommerce-warning"><?php echo wp_kses_post( $message ); ?></div>
<?php endforeach; ?>
然后,为了使它工作,我不得不添加此代码
add_filter('woocommerce_notice_types', function ($notice_types) {
$notice_types[] = "warning";
return $notice_types;
});
到我的functions.php
,让WooCommerce打印我的新通知类型。
然后当然有一些CSS来调整颜色和样式:
.woocommerce-warning {
border-top-color:gold;
border-bottom-color:gold;
}
.woocommerce-warning::before {
content: "\e016";
color: gold;
top: 0.2em;
left: 0.5em;
font-size: 1.8em;
}
现在,有一个简单的wc_add_notice('message', 'warning');
我的警告信息就在那里!
最初它似乎工作,但现在我意识到它的行为与原始通知类型不同:如果我更新购物车,即更正产品数量(我认为这是一个AJAX调用,可能有些jquery存在。 。?),我的验证器函数添加了一个不会更新的警告通知(它只是保留在旧消息中)。将类型warning
替换为notice
消息将按预期更新。
add_filter('woocommerce_check_cart_items', function() {
$prod = WC()->cart->get_cart_contents_count();
wc_add_notice('Notice: cart containing '.$prod.' products', 'notice'); // message gets updated
wc_add_notice('Warnign: cart containing '.$prod.' products', 'warning'); // this doesn't
});
任何想法为什么? 我的猜测:或许可以解决一些问题......?
感谢名单。
答案 0 :(得分:0)
在您的自定义类别中添加错误或成功通知类别,例如:“ woocommerce-message woocommerce-warning”
使它的js工作并消失 然后是CSS:
.woocommerce-message.woocommerce-warning {
border-top-color:gold;
border-bottom-color:gold;
}
.woocommerce-message.woocommerce-warning::before {
content: "\e016";
color: gold;
top: 0.2em;
left: 0.5em;
font-size: 1.8em;
}