首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Woocommerce购物车中替换购物车项目产品固定链接

如何在Woocommerce购物车中替换购物车项目产品固定链接
EN

Stack Overflow用户
提问于 2019-08-24 18:40:02
回答 1查看 601关注 0票数 1

我正在尝试替换购物车中的产品固定链接,即我们不想返回到产品,而是一个页面。我基本上循环通过购物车,是产品类别是订阅,然后我想要更改永久链接。

我已经写了一些应该可以工作的代码,但它不能,如果我只有一个产品,它工作得很好,但一旦我有多个产品,我的代码就会让一切都一样,我就是不明白为什么。

代码语言:javascript
运行
复制
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的链接。我确信我错过了一些非常简单的东西。

感谢您的帮助:-)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-24 20:30:37

使用woocommerce_cart_item_permalink过滤器钩子是获得你想要的东西的更简单和专用的方法,使用以下紧凑而有效的代码:

代码语言:javascript
运行
复制
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文件中。它应该是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57637180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档