为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 WooCommerce 中获取产品特定元数据

如何在 WooCommerce 中获取产品特定元数据

PHP
杨魅力 2023-08-06 15:42:17
我正在使用 WooCommerce,并且想要获取专门针对该产品的元密钥,例如价格、颜色等...但问题是我不想获取所有元密钥,而只想获取所需的元密钥。例如,我不需要_edit_last, _edit_lock, _wc_review_count... 而只需要priceand color(作为示例)。如果它是一个不重要的网页,但我不想在网页上显示它们,但我想将它们作为 json 发送到其他地方。所以应该对数据进行过滤。顺便说一句,它在插件中,我想与其他人分享,所以我不能/不应该访问他们的 WooCommerce api。我的代码获取所有元键(但我只想要其中的一些):$attributes = get_post_meta($product->get_id());foreach($attributes as $key => $value) {    $result['products'][$p]['attributes'][$key] = $value[0];}上面代码的结果是:[attributes] => Array(    [_edit_last] => 1    [_edit_lock] => 1594817821:1    .    .    .)但我想要:[attributes] => Array(    [price] => 1000    [color] => 'red'    .    .    .)
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

有多种方法,具体取决于您想要的:

1)。您将需要使用WC_Product 对象上的WC_Product方法来获取产品属性:

$product_id = 37; // Defined product Id for testing


// Get the WC_Product Object from the product ID (optional)

$product = wc_get_product($product_id); // If needed


// Get product active price

$product_data = $product->get_price();


// … and so on …

2)。对于特定或自定义产品元数据,您将使用使用所需元键的WC_Data方法,例如:get_meta()

$product_id = 37; // Defined product Id for testing


// Get the WC_Product Object from the product ID (optional)

$product = wc_get_product($product_id); // If needed


// Get custom meta data froma specific meta key

$product_data = $product->get_meta('my_meta_key');


// … and so on …

3)。您可以使用对象上的WC_Data方法get_data()WC_Product来获取数组中不受保护的元数据:

$product_id = 37; // Defined product Id for testing


// Get the WC_Product Object from the product ID (optional)

$product = wc_get_product($product_id); // If needed


// Get product unprotected meta data in an array

$product_data = $product->get_data();


// Output row data

echo '<pre>'. print_r( $obj, true ) . '</pre>';

你会得到类似的东西(摘录):


Array

(

    [id] => 37

    [name] => Happy Ninja Dish Hip

    [slug] => happy-ninja-dish

    [date_created] => WC_DateTime Object

        (

            [utc_offset:protected] => 0

            [date] => 2015-12-26 11:53:15.000000

            [timezone_type] => 3

            [timezone] => Europe/Paris

        )


    [date_modified] => WC_DateTime Object

        (

            [utc_offset:protected] => 0

            [date] => 2020-07-09 19:25:32.000000

            [timezone_type] => 3

            [timezone] => Europe/Paris

        )


    [status] => publish

    [featured] => 

    [catalog_visibility] => visible

    [description] => Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet…


[add_to_cart id="53"]

    [short_description] => Pellentesque habitant morbi tristique senectus...

    [sku] => Gh2563

    [price] => 90.50

    [regular_price] => 100

    [sale_price] => 90.50


// … and so on …


查看完整回答
反对 回复 2023-08-06
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

有两种方法可以做到这一点,一种是在 foreach 循环中手动过滤元数据数组,另一种是对 wp_postmeta 表进行自定义查询以获取特定键。



查看完整回答
反对 回复 2023-08-06
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

以下是有关如何从每个产品获取元数据的Woocommerce 代码参考。

另外,这是如何通过下面的键获取元数据的示例:

function woo_custom_additional_information_tab_content() {


global $product;


$product_data = $product->get_meta('_specifications');


echo $product_data;

}


查看完整回答
反对 回复 2023-08-06
  • 3 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信