Woocommerce - Выбор селекторов плагинов для одного продукта с REST API

У меня есть магазин woocommerce, который использует настраиваемый загрузчик, чтобы извлекать продукты из ChannelGrabber и отправлять их в Woocommerce с большей степенью детализации, чем то, что изначально доступно из CG. Часть запроса клиентов заключалась в том, чтобы каждый цвет отображался как отдельная вариация, и поэтому я установил плагин под названием " Показать отдельные варианты ".

Из остального API я смог правильно создать варианты и использовать мета-ключ _jck_wssv_display_title с нужным мне заголовком. Это было прекрасно. К сожалению, используя ту же логику, если я пытаюсь использовать _jck_wssv_variable_show_search в качестве мета-ключа, я не могу установить флажок. Я пробовал установить значение 1, правда, да ... все, что я мог придумать.

Я на 99% уверен, что это правильное использование.

[
'key' => '_jck_wssv_variable_show_search',
'value' => true
],
[
'key' => '_jck_wssv_display_title',
'value' => $varMetaTitle
]

Кому-нибудь раньше везло с REST API и плагинами? Я просто веду себя глупо и использую не тот ключ?

Даже после того, как я создал вариант, я попытался обновить его с помощью оператора put, но сам вариант оказался сиротой.

Любая помощь приветствуется. Изменить: я какое-то время разговаривал с автором плагина, и кажется, что он обновляет что-то, кроме названия, не так просто, как мета. Это еще не все. Я изо всех сил пытаюсь понять, где. Он упомянул о вызове метода "сеттера" ... хотя я не уверен, где искать.


person Dan Ruxton    schedule 21.11.2017    source источник


Ответы (1)


Ладно, это потребовало немного силы ума, чтобы пройти. Во-первых, вам нужно создать файл php где-нибудь в каталоге wordpress.

Основная идея состоит в том, чтобы использовать CURL в этом файле с нужной вам информацией.

Созданный мной файл был примерно таким:

<?php

if(!empty($_POST['id']) && !empty($_POST['check'])){

    $varID = $_POST['id']
    //take the id that will be sent in the curl request.

    require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
    //tell wordpress we need it to load, so we can reach the plugins.

    Iconic_WSSV_Product_Variation::set_visibility($varID, array("search", "catalog", "filtered"));
    //this calls the function set_visibility from the plugin.
    //it turns on the checkboxes i require for my variations
}
?>

После того, как файл был настроен, я перешел к своему сценарию и во время цикла для вариантов, которые я добавил:

$ch = curl_init();
//initialise curl

$stringToCurl = "id=" . $getVar['id'] . "&check=yes";
//create string including id for this variant.
//i have an extra conditional for security here

curl_setopt($ch, CURLOPT_POSTFIELDS, $stringToCurl);
//set the curl options up

curl_setopt($ch, CURLOPT_URL, "https://www.example.co.uk/my_file.php");
//set the url to the path of the file

curl_exec($ch);
//execute the curl

Хотя это не самое элегантное решение, я думаю, что оно хорошо послужило моим целям. Я надеюсь, что это поможет кому-то еще позже.

person Dan Ruxton    schedule 01.12.2017