Php 在消息前添加SVG图标

Php 在消息前添加SVG图标,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我想在WooCommerce中的Add to Cart消息前添加一个SVG图标,但由于某些原因,消息中没有显示SVG 我的functions.php文件中有以下代码: function update_add_to_cart_message($message, $product_id) { $icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><pa

我想在WooCommerce中的Add to Cart消息前添加一个SVG图标,但由于某些原因,消息中没有显示SVG

我的
functions.php
文件中有以下代码:

function update_add_to_cart_message($message, $product_id) {
    $icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"></path><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></svg>';
    $message = $icon . $message;
    return $message;
}
add_filter('wc_add_to_cart_message_html', 'update_add_to_cart_message', 10, 2);
功能更新\u向购物车添加\u消息($message,$product\u id){
$icon='';
$message=$icon.$message;
返回$message;
}
添加过滤器(“wc\U添加到购物车消息\U html”,“更新\U添加到购物车消息”,10,2);
如果我用
$icon='Test'之类的东西替换svg,工作正常


为什么这不起作用?我需要做什么来修复它?我当然可以更新WooCommerce模板文件,但我不想更新。

WooCommerce正在使用
wp\u kses()
函数和
wp\u kses\u allowed\u html('post')
上下文过滤通知
post
上下文没有列出
标记,这就是svg代码被剥离的原因

作为一种简单的解决方法,您可以为
post
context:

函数wp\u kses\u allowed\u html\u 63014342($allowedposttags,$context){
如果($context==='post'){
$allowedposttags['svg']=数组(
“xmlns”=>正确,
“viewbox”=>真,
);
$allowedposttags['path']=数组(
'd'=>对,
'填充'=>为真,
);
}
返回$allowedposttags;
}
添加过滤器('wp_kses_allowed_html'、'wp_kses_allowed_html_63014342',10,2);
注意,这将允许这些标记用于使用
post
上下文的所有内容。

请参阅: