Woocommerce 产品 link url 用于简单产品

Woocommerce product link url for simple products

使用简码 [add_to_cart_url sku="#"] 将生成一个 link,只有当产品有变体时,才会将购物者带到单一产品页面。

如果我想要一个简单的产品(没有变化的产品)link 到它的单个产品页面而不是将它添加到购物车怎么办?

IMO,WooCommerce 团队似乎忽略了这一点。

我想要的只是根据商品的 SKU 生成 link 到商品的单个产品页面。像实施 [product_url sku="#"] 这样简单的东西会很棒。

否则,搜索 Google 未显示成功。

这是你想要的吗?

以下代码仅适用于产品 URL 的简码,您可以像这样使用它:

[product_url sku="SKUofProduct"] 或 ID [product_url id="productID"]

add_shortcode( 'product_url', 'rohils_product_url_function' );

function rohils_product_url_function($atts){
        global $wpdb;

        if ( empty( $atts ) ) {
            return '';
        }

        if ( isset( $atts['id'] ) ) {
            $product_data = get_post( $atts['id'] );
        } elseif ( isset( $atts['sku'] ) ) {
            $product_id   = wc_get_product_id_by_sku( $atts['sku'] );
            $product_data = get_post( $product_id );
        } else {
            return '';
        }

        if ( 'product' !== $product_data->post_type ) {
            return '';
        }

        $_product = wc_get_product( $product_data );

        return esc_url( get_post_permalink($_product->id) );
}