Создание WC_Product_Subscription_Variation и установка требуемой мета-записи (period и period_interval) с помощью PHP - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь создать WC_Product_Variable_Subscription и подключенные WC_Product_Subscription_Variation (s) через PHP

Создание WC_Product_Variable и WC_Product_Variation кажется довольно простым ( класс, от которого наследуются создаваемые мной классы), но у меня возникают проблемы с настройкой требуемых

интервалов, периодов и длины

(например, сделать цену подписки 200 $ каждый месяц в течение 6 месяцев. )

При создании нового WC_Product_Variation и подключенных новых WC_Product_Subscription_Variation (s)

это так же просто, как установка мета-сообщения

[_subscription_period] => Array
    (
        [0] => month
    )

[_subscription_period_interval] => Array
    (
        [0] => 1
    )

[_subscription_length] => Array
    (
        [0] => 3
    )

вручную после создания вариантов? У кого-нибудь есть пример рабочего кода для этого?

Спасибо всем, кто может указать мне правильное направление!

м.

1 Ответ

0 голосов
/ 23 апреля 2020

Еще раз, я должен был рассмотреть базовый код более подробно, прежде чем публиковать этот вопрос - извините всех, кто действительно провел время с этим вопросом.

По поводу фактического ответа:

если WC_Product_Variable_Subscription (которая не является подпиской, а тип продукта - наименование может быть немного запутанным) было создано, и необходимые варианты были созданы / связаны с ним, варианты продукта могут быть обновлены через метаданные поста data.

например,

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);

в качестве подсказки: если вы ищете способ создания вариантов, вы можете взглянуть на createAllProductVariations метод data_store

например

$data_store = $product->get_data_store();    
$data_store->create_all_product_variations($product, $maxVariations);
$data_store->sort_all_product_variations($product->get_id());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...