Мне нужно программно добавить варианты к моим продуктам 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 варианта последнего элемента массива атрибутов;