Как я могу запустить пользовательскую функцию только один раз в Woocommerce - PullRequest
0 голосов
/ 13 ноября 2018

Мне нужно программно добавить варианты к моим продуктам Woocommerce, и я позаимствовал код из этой ветки ответов:
Программно создать вариант продукта WooCommerce с новыми значениями атрибутов

Это работает, но дает мне два варианта, когда я передаю этот массив данных:

$variation_data =  array(
    'attributes' => array(
        'kidssize'  => '2'
    ),
    'sku'           => '',
    'regular_price' => '120',
    'sale_price'    => '',
    'stock_qty'     => '',
);

Я предполагаю, что функция срабатывает два раза.

Поскольку я новичок в php и бэкэнд в целом все язнать, как вызывать функцию, можно из некоторого файла шаблона и посещения страницы.

И чтобы другие посетители не запускали его, я использую

if(isset($_GET['**parameter Only I know**'])) 

… wrap и вызываю его, переходя на страницу с заданным параметром;

Я понимаю, что это действительно плохой способ сделать это, но как мне сделать это иначе, если мне нужно вызвать функцию один раз и никогда не использовать ее снова?

И даже дважды запускает проблему здесь или что-то не так с моим массивом?

РЕДАКТИРОВАТЬ:

Вот подробный процесс того, что яdo:

Я поместил функцию по ссылке выше в functions.php,

, затем поместил вызов в footer.php моей темы с вышеупомянутым переносом (параметр не имеет значения - это можетбыть чем угодно, потому что он просто используется в качестве триггера)

и перейти на страницу с указанным параметром для запуска вызова,

загрузить страницу только один раз и найти результат в панели администратора.

И у него всегда есть 2 варианта, даже если я добавлю больше атрибутов в массив, он вернет 2 варианта последнего элемента массива атрибутов;

...