我正在尝试替换购物车中的产品固定链接,即我们不想返回到产品,而是一个页面。我基本上循环通过购物车,是产品类别是订阅,然后我想要更改永久链接。
我已经写了一些应该可以工作的代码,但它不能,如果我只有一个产品,它工作得很好,但一旦我有多个产品,我的代码就会让一切都一样,我就是不明白为什么。
function change_sub_url( $product_title, $cart_item, $cart_item_key )
{
$category = array('Subscription');
$replacement_permalink = 'https://THE_URL/subscriptions/';
// Cart page check
if ( is_cart() )
{
// Get Cart of the user //
$cart = WC()->cart->get_cart();
foreach ( $cart as $cart_key => $cart_item )
{
$return_value="";
$_product = $cart_item['data'] ;
$product_permalink = $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '';
// Check for product categories we're looking for Subscription
if ( has_term( $category, 'product_cat', $cart_item['product_id'] ) )
{
// It will return the product name on the cart page.
// As the filter used on checkout and cart are same.
$return_value = sprintf( '<a href="%s">%s</a>', esc_url( $replacement_permalink ), $_product->get_title());
return $return_value;
}
$return_value = sprintf( '<a href="%s">%s</a>', esc_url( $product_permalink ), $_product->get_title());
return $return_value ;
}
}
}
add_filter ('woocommerce_cart_item_name', 'change_sub_url' , 10, 3 );此代码应该只更改类别为subscription的链接。我确信我错过了一些非常简单的东西。
感谢您的帮助:-)
发布于 2019-08-24 20:30:37
使用woocommerce_cart_item_permalink过滤器钩子是获得你想要的东西的更简单和专用的方法,使用以下紧凑而有效的代码:
add_filter ('woocommerce_cart_item_permalink', 'custom_cart_item_permalink' , 10, 3 );
function custom_cart_item_permalink( $permalink, $cart_item, $cart_item_key ) {
// HERE your defined product category
$category = array('Subscription');
if ( is_cart() && has_term( $category, 'product_cat', $cart_item['product_id'] ) ) {
$permalink = 'https://THE_URL/subscriptions/';
}
return $permalink;
}代码放在活动子主题(或活动主题)的function.php文件中。它应该是有效的。
https://stackoverflow.com/questions/57637180
复制相似问题