gpt4 book ai didi

php - 在 WooCommerce 中创建订阅产品时使用 update_post_meta

转载 作者:行者123 更新时间:2023-12-03 19:16:10 24 4
gpt4 key购买 nike

我目前正在创建一个插件,从他们的车牌收集数据。一切正常。帖子被创建,我收到创建的帖子的 ID 等等。但在我的功能的最后..我想更新帖子元这样做:

update_post_meta($product_id, '_regular_price', '0');
update_post_meta($product_id, '_subscription_period_interval', '1');
update_post_meta($product_id, '_subscription_period', 'week');
但什么也没有发生。我已经尝试再次运行该函数,将代码放在其他地方,并且我已经在代码中尝试了多个位置。甚至尝试为这 3 行本身创建一个全新的功能。仍然没有运气。
我尝试从我刚刚创建的帖子中返回帖子元数据。查看返回的数据,我看到我的 post_meta 已设置,但是当从 WordPress 帖子类型存档访问帖子时,帖子元被重置/忽略。
这是我面临的:
enter image description here
如您所见,正在设置帖子元数据,但是在查看我的文件时...未设置。
我什至尝试使用 sleep(3) 来确保帖子是在 update_post_meta 之前创建的。没运气。
有关如何解决此问题的任何想法或提示?
我想通过将这 3 行添加到示例中来添加它:functions.php,然后对 id 进行硬编码,然后它将起作用。所以简短的版本是,在创建帖子时,即使 id 设置正确,这 3 行也不做任何事情。因此,在创建帖子等时必须有所作为...
编辑
您要求查看 product_id 的设置位置:
 $post_data = array(
'post_author' => $author,
'post_name' => $postname,
'post_title' => $data['title'],
'post_content' => $data['content'],
'post_excerpt' => $data['excerpt'],
'post_status' => 'draft',
'ping_status' => 'closed',
'post_type' => 'product',
);

// Creating the product (post data)
$product_id = wp_insert_post( $post_data );
WordPress #WooCommerce

最佳答案

首先,您似乎正在尝试创建一个简单的订阅产品……所以您忘记设置产品类型 subscription以及其他一些与产品订阅价格相关的事情。:

$post_data = array(
'post_author' => $author,
'post_name' => $postname,
'post_title' => $data['title'],
'post_content' => $data['content'],
'post_excerpt' => $data['excerpt'],
'post_status' => 'draft',
'ping_status' => 'closed',
'post_type' => 'product',
);


// Creating the product (from post data)
$product_id = wp_insert_post( $post_data );

// Set the product type <==== <==== <==== Missing
wp_set_object_terms( $product_id, 'subscription', 'product_type' ); // <== Missing

$product_price = 0;

update_post_meta($product_id, '_regular_price', $product_price);
update_post_meta($product_id, '_price', $product_price); // <== <== <== Missing
update_post_meta($product_id, '_subscription_price', $product_price); // <== Missing

update_post_meta($product_id, '_subscription_period', 'week');
update_post_meta($product_id, '_subscription_period_interval', '1');

它现在应该更好地工作。

关于php - 在 WooCommerce 中创建订阅产品时使用 update_post_meta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60524576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com