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

Woocommerce get and display product id by sku

我正在尝试找到一种从当前产品 SKU 中获取产品 ID 并通过短代码显示它的方法。到目前为止我来了,但出于某种原因,我正在使用的这段代码没有获得正确的 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: 如果你会和函数有冲突,那就自定义函数名和简码名即可。

您需要先定义$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');