【问题标题】:Woocommerce get and display product id by skuWoocommerce 按 sku 获取和显示产品 ID
【发布时间】:2016-03-04 06:15:14
【问题描述】:

我正在尝试找到一种方法从当前产品 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:如果你会和函数发生冲突,那么只需自定义函数名称和简码名称即可。

【问题讨论】:

标签: php wordpress get woocommerce shortcode


【解决方案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');

【讨论】:

  • 输出的product_id是否可以得到正常价格?
  • Woocommerce 有很好的文档。查看产品类中的get_regular_price 方法。 docs.woothemes.com/wc-apidocs/…
  • 谢谢安东尼,我已经读过这个和很多其他的了。但我的问题是我需要取出返回的 $product_id 的正常价格。到目前为止,如果我使用 get_regular_price();它返回我使用此简码的 current_product 的价格。问题是如何从这个函数返回的 $product_id 中得到正常价格。
  • 很简单...$new_product = new WC_Product($product_id); $price = $new_product->get_regular_price();
猜你喜欢
  • 2014-07-04
  • 2022-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-21
  • 2020-10-17
相关资源
最近更新 更多