从购物车中的产品链接中删除属性 (Woocommerce - get_permalink)
Remove attributes from product links in cart (Woocommerce - get_permalink)
在购物车页面中的 woocommerce 产品上回显 the_permalink 将创建一个 link,其中包含 link 中的属性选择,例如:
http://ourdemo.com/product/product-test-2/?attribute_pa_frame=polished-chrome
我们想从 link 中删除这些属性(出于各种原因),但似乎 the_permalink,当产品 ID 上的 运行 将 return他们自动。
查看文档我似乎找不到不 return 属性的参数?还有另一种方法可以在没有任何参数的情况下获得基本 permalink 吗?
谢谢
问题在于,只要相关产品是变体,$_product->get_permalink($cart_item)
就会自动将属性添加到 permalink。
我不明白您为什么要摆脱这种行为,但可以通过将 $_product->get_permalink()
方法切换为 WordPress 的默认 get_permalink()
函数来实现。对于 non-variation 个产品,该方法只是一个 "wrapper"。
如果您不显示缩略图,则可以通过过滤器切换标题link:
function so_remove_attributes_from_permalink( $name, $cart_item, $cart_item_key ){
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
if ( ! $_product->is_visible() ){
$name = sprintf( '<a href="%s">%s</a>', get_permalink( $cart_item['product_id'] ), $_product->get_title(), $cart_item, $cart_item_key );
}
return $name;
}
add_filter( 'woocommerce_cart_item_name', 'so_remove_attributes_from_permalink', 10, 3 );
如果您要在购物车中显示缩略图,那么我认为您需要覆盖 cart/cart.php
模板并修改引用
$_product->get_permalink( $cart_item )
到
get_permalink( $cart_item['product_id'] )
在购物车页面中的 woocommerce 产品上回显 the_permalink 将创建一个 link,其中包含 link 中的属性选择,例如:
http://ourdemo.com/product/product-test-2/?attribute_pa_frame=polished-chrome
我们想从 link 中删除这些属性(出于各种原因),但似乎 the_permalink,当产品 ID 上的 运行 将 return他们自动。
查看文档我似乎找不到不 return 属性的参数?还有另一种方法可以在没有任何参数的情况下获得基本 permalink 吗?
谢谢
问题在于,只要相关产品是变体,$_product->get_permalink($cart_item)
就会自动将属性添加到 permalink。
我不明白您为什么要摆脱这种行为,但可以通过将 $_product->get_permalink()
方法切换为 WordPress 的默认 get_permalink()
函数来实现。对于 non-variation 个产品,该方法只是一个 "wrapper"。
如果您不显示缩略图,则可以通过过滤器切换标题link:
function so_remove_attributes_from_permalink( $name, $cart_item, $cart_item_key ){
$_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
if ( ! $_product->is_visible() ){
$name = sprintf( '<a href="%s">%s</a>', get_permalink( $cart_item['product_id'] ), $_product->get_title(), $cart_item, $cart_item_key );
}
return $name;
}
add_filter( 'woocommerce_cart_item_name', 'so_remove_attributes_from_permalink', 10, 3 );
如果您要在购物车中显示缩略图,那么我认为您需要覆盖 cart/cart.php
模板并修改引用
$_product->get_permalink( $cart_item )
到
get_permalink( $cart_item['product_id'] )