Woocommerce通过sku获取并显示产品ID

时间:2015-11-30 14:58:56

标签: php wordpress get woocommerce shortcode

我正在尝试找到一种方法,将产品ID从当前产品SKU中取出,并通过短代码显示。到目前为止,我来了,但由于某种原因,我使用的代码没有得到正确的ID,我无法弄清楚为什么因为我在PHP中不是很好。

解:

function get_product_id_by_sku_fc( $atts ){
 global $product;

 $atts = shortcode_atts( array(
         'sku'  =>  '',
     ), $atts );

 $product_id = null;
 // get product ID out of the defined SKU in the shortcode [get_product_id_by_sku sku="SKU"]
 if (!empty( $atts['sku'] ) ) {
 $product_id = wc_get_product_id_by_sku( $atts['sku'] );
 $product = wc_get_product( $product_id );
 } else {
   //get product ID out of the current_product sku, shortcode [get_product_id_by_sku]
   $sku = $product->get_sku();
   $product_id = wc_get_product_id_by_sku( $sku );
   $product = wc_get_product( $product_id );

 }
 return $product_id;
}
add_shortcode( 'get_product_id_by_sku', 'get_product_id_by_sku_fc');

谢谢大家的帮助!

PS:如果你与功能有冲突,那么只需自定义功能名称和短代码名称。

1 个答案:

答案 0 :(得分:1)

您需要在使用之前定义$ sku。假设您的短代码如下所示:

[getpid sku="product-1"]

你应该这样做:

function getproductbysku( $atts ){
    $product_id = null; //or whatever you want to default to.
    if(!empty($atts['sku'])){
        $product_id = wc_get_product_id_by_sku( $atts['sku'] );
    }
    return $product_id;
}
add_shortcode( 'getpid', 'getproductbysku');