php - 通过 PHP 创建一个 WC_Product_Subscription_Variation 并设置所需的帖子元(周期和周期间隔)
问题描述
我正在尝试通过 PHP 创建一个 WC_Product_Variable_Subscription 和连接的 WC_Product_Subscription_Variation(s)
创建WC_Product_Variable和WC_Product_Variation似乎很简单(我创建的类继承自该类),但我无法设置所需的
间隔、周期和长度
属性(例如,订阅价格为每月 200 美元,为期 6 个月。)
创建 新的 WC_Product_Variation 和连接的新 WC_Product_Subscription_Variation(s) 时
是不是像设置post meta一样简单
[_subscription_period] => Array
(
[0] => month
)
[_subscription_period_interval] => Array
(
[0] => 1
)
[_subscription_length] => Array
(
[0] => 3
)
创建变体后手动?有没有人有一个工作代码示例?
感谢任何可以为我指明正确方向的人!
米。
解决方案
在发布这个问题之前,我应该再次更详细地查看底层代码 - 对任何真正花时间处理这个问题的人感到抱歉。
关于实际答案:
如果已创建 WC_Product_Variable_Subscription(不是订阅,而是产品类型 - 命名可能有点混乱)并且已创建/连接所需的变体,则可以通过发布元数据更新产品变体。
例如
update_post_meta($variation->get_id(), '_subscription_period', 'week');
update_post_meta($variation->get_id(), '_subscription_period_interval', 1);
update_post_meta($variation->get_id(), '_subscription_length', 4);
作为提示:如果您搜索创建变体的方法,您可以查看 data_store 的createAllProductVariations方法
例如
$data_store = $product->get_data_store();
$data_store->create_all_product_variations($product, $maxVariations);
$data_store->sort_all_product_variations($product->get_id());
推荐阅读
- vba - 从 accuweather 网站抓取表格数据
- c++ - 如何在 C++ 中导出返回类型为 std::map 的函数
- android - 燃料得到身体对错误的反应
- c# - 在 asp.net 中创建动态控件并保留其状态
- python - 如何通过硒和python找到相对于另一个元素的元素
- java - Jdbc 返回空列表但 SQL 查询成功获取数据 [Spring]
- ruby-on-rails - 将哈希内部数组转换为 ruby 中的单键多值哈希
- laravel - 中间件中设置的变量在资源控制器的构造函数中为空,但在控制器的其他方法中具有值(非空)
- google-apps-script - 我可以使用谷歌脚本从搜索栏谷歌驱动器搜索和获取文件吗
- sql - 获取过去 24 小时内每小时的记录数