在Woocommerce 3中访问WC_Product保护的数据

时间:2018-10-20 13:58:12

标签: php wordpress class object woocommerce

我有这个答案供参考:Woocommerce Get Product Values by ID…关于返回受保护数据的函数wc_get_product()

为该函数定义的getter方法在哪里?
如何访问wc_get_product()内部的受保护数据?

This Answer thread告知正在使用WC_Product_Factory类。可以扩展此类以访问wc_get_product()内部的受保护数据吗?

wc_get_product()似乎是一个函数,但是它如何返回对象?

1 个答案:

答案 0 :(得分:4)

wc_get_product( $product_id)函数提供WC_Product实例对象(来自产品ID),其中可以使用所有可用的WC_Product methods和{{1} }子类,具体取决于产品类型:

WC_Product

您可以使用WC_Data method get_data()取消保护数据,这将为您提供可访问的数据数组:

// Get the instance of the WC_Product Object
$product = wc_get_product( $product_id);

// Using `WC_Product` methods examples to get specific related data values:

$product_type  = $product->get_type(); // product Type
$product_id    = $product->get_id(); // product ID
$product_name  = $product->get_name(); // product name
$product_sku   = $product->get_sku(); // product SKU
$product_price = $product->get_price(); // product price

// And so on…

// The raw display of the object protected data (Just for testing)
echo '<pre>'; print_r( $product ); echo '</pre>';
  

对于特定的自定义元数据,您可以使用WC_Data method get_meta()。因此,如果自定义元键例如是 // Get the instance of the WC_Product Object $product = wc_get_product( $product_id); // Get the accessible array of product properties: $data = $product->get_data(); // get specific related data values: $product_id = $data['id']; // product ID $product_name = $data['name']; // product name $product_sku = $data['sku']; // product SKU $product_price = $data['price']; // product price // And so on… // The raw display of the unprotected data array (Just for testing) echo '<pre>'; print_r( $data ); echo '</pre>'; ,则您将使用:

_custom_height

Woocommerce API官方文档: