WooCommerce更改单个产品链接

时间:2016-05-12 16:24:43

标签: php wordpress

默认情况下,WooCommerce会创建产品页面链接,并在创建完成后将其添加到要素图像(以及标题)中。 我想改变一个产品的链接而不影响其他产品。 在cart.php文件中,我看到以下几行:

<td class="product-name">
                    <?php // Avada edit ?>
                    <span class="product-thumbnail">
                        <?php
                            $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );

                            if ( ! $_product->is_visible() )
                                echo $thumbnail;
                            else
                                printf( '<a href="%s">%s</a>', $_product->get_permalink( $cart_item ), $thumbnail );
                        ?>
                    </span>
                    <div class="product-info">
                    <?php
                        if ( ! $_product->is_visible() )
                            echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key );
                        else
                            // Avada edit
                            echo apply_filters( 'woocommerce_cart_item_name', sprintf( '<a class="product-title" href="%s">%s</a>', $_product->get_permalink( $cart_item ), $_product->get_title() ), $cart_item, $cart_item_key );

我知道如果我修改else部分<span class="product-thumbnail">部分中的sprintf( '%s', $_product->get_title() ), $cart_item, $cart_item_key ); 行:

$_product->id

我可以删除链接,但这会影响所有产品。

如何调用ID产品然后更改其链接?我知道这将是if (!preg_match('/^[0-9]+$/', $_GET['id'])) { echo 'ID disallowed.'; } ,但之后我不知道如何放置它。

PS:请原谅我的英文,谢谢你。

1 个答案:

答案 0 :(得分:0)

所以你可以添加其他产品创建一个数组,目前只包含一个id,但谁知道未来会带来什么

$special_products = array(606);

然后只需在此代码中添加另一个测试,然后输出您想要的任何内容,而不是之前的内容

if ( ! $_product->is_visible() ) {
   echo $thumbnail;
} else {
    if ( in_array($_product->id, $special_products) ) {
        echo 'Something else, whatever you like';
    } else {
        printf( '<a href="%s">%s</a>', $_product->get_permalink( $cart_item ), $thumbnail );
    }
}