Wordpress WoCommerce for WP中wc_add_to_cart_消息钩子的备选方案

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

我使用Woocommerce中的AddtoCart消息钩子编辑文本,并从某些按钮中删除一些类。看起来这个钩子在Woocommerce 2.1中已经被弃用了,我找不到其他的选择

我想从“继续购物”按钮中删除“button”类。这个类是在Woocommerce核心中定义的,我不想编辑它,以便将来进行适当的更新

我试图编辑的行位于woocommerce/includes/wc-cart-functions.php第94行

$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 );