Wordpress WoCommerce for WP中wc_add_to_cart_消息钩子的备选方案
我使用Woocommerce中的AddtoCart消息钩子编辑文本,并从某些按钮中删除一些类。看起来这个钩子在Woocommerce 2.1中已经被弃用了,我找不到其他的选择 我想从“继续购物”按钮中删除“button”类。这个类是在Woocommerce核心中定义的,我不想编辑它,以便将来进行适当的更新 我试图编辑的行位于woocommerce/includes/wc-cart-functions.php第94行Wordpress WoCommerce for WP中wc_add_to_cart_消息钩子的备选方案,wordpress,woocommerce,Wordpress,Woocommerce,我使用Woocommerce中的AddtoCart消息钩子编辑文本,并从某些按钮中删除一些类。看起来这个钩子在Woocommerce 2.1中已经被弃用了,我找不到其他的选择 我想从“继续购物”按钮中删除“button”类。这个类是在Woocommerce核心中定义的,我不想编辑它,以便将来进行适当的更新 我试图编辑的行位于woocommerce/includes/wc-cart-functions.php第94行 $message = sprintf('<a href="%s" clas
$message = sprintf('<a href="%s" class="button wc-forward">%s</a> %s', $return_to, __( 'Continue Shopping', 'woocommerce' ), $added_text );
$message=sprintf(“%s”、$return\u to、\uuuu(‘继续购物’、‘woocommerce’)、$added\u text);
有人找到这个钩子的合适替代品了吗?提前谢谢 这可能是一个解决方案。如果您有更好的方法或想法,请更改: 筛选器名称已随2.1版本更改为“wc\u add\u to\u cart\u message”
add_过滤器('wc_add_to_cart_message','foo');
函数foo(){
$product\U id=$\U请求['product\U id'];
if(is_数组($product_id)){
$titles=array();
foreach($product\U id作为$id){
$titles[]=获取标题($id);
}
$added_text=sprintf(uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
}否则{
$added_text=sprintf(uuuu(“%s”已成功添加到您的购物车中。”,“woocommerce”),获取_标题($product_id));
}
//输出成功消息
如果(获取选项('woocommerce\u cart\u redirect\u after\u add')=='yes'):
$return\u to=apply\u过滤器('woocommerce\u continue\u shopping\u redirect',wp\u get\u referer()?wp\u get\u referer():home\u url());
$message=sprintf(
“%s”,
$return\u to、\uuu('Continue Shopping'、'woocommerce'),
$added_文本
);
其他:
$message=sprintf(
“%s”,
获取永久链接(wc获取页面id(“购物车”),
__(“查看购物车”、“woocommerce”),
$增加了文本);
endif;
返回$message;
}
希望能有帮助。
干杯这对我很有效
add_filter( 'wc_add_to_cart_message', 'custom_add_to_cart_message' );
function custom_add_to_cart_message() {
global $woocommerce;
$return_to = get_permalink(woocommerce_get_page_id('shop'));
$message = sprintf('<a href="%s" class="button wc-forwards">%s</a> %s', $return_to, __('Continue Shopping', 'woocommerce'), __('Product successfully added to your cart.', 'woocommerce') );
return $message;
}
add_过滤器('wc_add_to_cart_message'、'custom_add_to_cart_message');
函数自定义\将\添加到\购物车\消息(){
全球商业;
$return\u to=get\u permalink(woocommerce\u get\u page\u id('shop');
$message=sprintf('%s',$return_to,''Continue Shopping','woocommerce'),'woocommerce','Product successfully added to your cart','woocommerce');
返回$message;
}
编辑:感谢卡雷尔·卡斯帕的更正
add_filter( 'wc_add_to_cart_message', 'custom_add_to_cart_message' );
function custom_add_to_cart_message( $message ){
global $woocommerce;
$added_text = __( 'Product was successfully added to your Network Kit.', 'woocommerce' );
// Output success messages
if ( get_option( 'woocommerce_cart_redirect_after_add' ) == 'yes' ) :
$return_to = apply_filters( 'woocommerce_continue_shopping_redirect', wp_get_referer() ? wp_get_referer() : home_url() );
$message = sprintf('<a href="%s" class="button wc-forward">%s</a> %s', $return_to, __( 'Continue Shopping', 'woocommerce' ), $added_text );
else :
$message = sprintf('<a href="%s" class="button wc-forward">%s</a> %s', wc_get_page_permalink( 'cart' ), __( 'View your Network Kit', 'woocommerce' ), $added_text );
endif;
return $message;
}
add_过滤器('wc_add_to_cart_message'、'custom_add_to_cart_message');
函数自定义添加到购物车消息($message){
全球商业;
$added_text=uuuuu('Product已成功添加到您的网络工具包','woocommerce');
//输出成功消息
如果(获取选项('woocommerce\u cart\u redirect\u after\u add')=='yes'):
$return\u to=apply\u过滤器('woocommerce\u continue\u shopping\u redirect',wp\u get\u referer()?wp\u get\u referer():home\u url());
$message=sprintf('%s',$return\u to,''Continue Shopping','woocommerce'),$added\u text);
其他:
$message=sprintf('%s',wc\u get\u page\u permalink('cart'),\uuuuuu('View your Network Kit','woocommerce'),$added\u text);
endif;
返回$message;
}
虽然此线程有点旧,但我发现了指向我的同一个问题的链接,该问题是关于自3.0版以来已弃用的!从G搜索引擎的第一个链接开始,下面是修复我错误的方法
错误:
注意:wc_添加到_购物车_消息筛选器自3.0版以来已被弃用!改用wc\u add\u to\u cart\u message\u html。在第4329行的/sitepath.com/wp-includes/functions.php中
注意:woocommerce\u get\u page\u id自3.0版以来已被弃用!改用wc_get_page_id。在第4329行的/sitepath.com/wp-includes/functions.php中
正如您所看到的,解决方案存在于问题中(错误消息)
使用wc\u添加到购物车\u消息\u html
使用
wc\u get\u page\u id代替从2020年起,这是所需的过滤器:wc\u add\u to\u cart\u消息已被弃用。在这里,我只是简单地将信息包装在span中:
//New added to card message text
function filter_wc_add_to_cart_message_html( $message, $products ) {
return "<span>".$message."</span>";
};
add_filter( 'wc_add_to_cart_message_html', 'filter_wc_add_to_cart_message_html', 10, 2 );
//新添加到卡消息文本
函数筛选器\u wc\u添加到\u购物车\u消息\u html($message,$products){
返回“$message.”;
};
添加过滤器('wc\u add\u to\u cart\u message\u html','filter\u wc\u add\u to\u cart\u message\u html',10,2);
wc\u add\u to\u cart\u message有两个参数:message和product\u id。因此,最好将add\u filter
语句更改为add\u filter('wc\u add\u to\u cart\u message','foo',10,2)
,将foo
函数的签名更改为函数foo($message,$product\u id)
,并删除字符串$product\u id=$\u请求['product\u id']代码>。
//New added to card message text
function filter_wc_add_to_cart_message_html( $message, $products ) {
return "<span>".$message."</span>";
};
add_filter( 'wc_add_to_cart_message_html', 'filter_wc_add_to_cart_message_html', 10, 2 );