Woocommerce使用产品SKU获得产品ID

Sun*_*ara 10 php mysql wordpress custom-fields woocommerce

我正在一个单独的模板页面,该页面使用wordpress post的自定义字段获取woocommece产品sku.我需要获得那个sku的产品ID来创建woocommece对象并做更多的事情,这是我的代码.

global $woocommerce;
//this return sku (custom field on a wordpress post)
$sku=get_field( "product_sku" );
if($sku!=''){
  //need to create object, but using sku cannot create a object, 
  $product = new WC_Product($sku); 
  echo $product->get_price_html();
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在创建对象之前获取产品ID,然后我可以将产品ID传递给WC_Product类构造函数并创建object.thank you

小智 42

WooCommerce 2.3最终在核心中增加了对此的支持.

如果您使用的是此版本,则可以致电

wc_get_product_id_by_sku( $sku )
Run Code Online (Sandbox Code Playgroud)

  • 添加:这得到 `$product = new WC_Product(wc_get_product_id_by_sku($sku));` (3认同)

pma*_*ell 10

您可以使用此功能(在此处找到).谷歌是你的朋友!

function get_product_by_sku( $sku ) {

    global $wpdb;

    $product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );

    if ( $product_id ) return new WC_Product( $product_id );

    return null;
}
Run Code Online (Sandbox Code Playgroud)