Вот конкретный сценарий:
У меня есть родительское поле повторителя, называемое продавцы со следующими подполями:
компания (название продавца)
цена (Price)
ссылка (Link)
Во время импорта мне необходимо:
Проверьте, соответствует ли значение компании входящему {company_name[1] из записи.
Если оно уже существует, ничего не делайте.
Если оно не существует , добавьте новую строку в поле повторителя со следующими значениями
Код: Выделить всё
bedrijf = {company_name[1]}
prijs = {search_price[1]}
link = {y_link[1]}
Я пробовал:
Код: Выделить всё
add_action('pmxi_saved_post', function($post_id, $xml_data, $import_id) {
if (get_post_type($post_id) !== 'product') return;
$selector = 'sellers';
$subfield1 = 'company';
$subfield2 = 'prijs';
$subfield3 = 'link';
$merchant_name = $xml_data['company_name'][1] ?? '';
$search_price = $xml_data['search_price'][1] ?? '';
$aw_deep_link = $xml_data['company_name'][1] ?? '';
if (empty($merchant_name)) return;
$existing_rows = get_field($selector, $post_id) ?: [];
foreach ($existing_rows as $row) {
if ($row[$subfield1] === $merchant_name) return;
}
$existing_rows[] = [
$subfield1 => $company_name,
$subfield2 => $search_price,
$subfield3 => $y_link,
];
update_field($selector, $existing_rows, $post_id);
}, 10, 3);
Подробнее здесь: https://stackoverflow.com/questions/793 ... sting-data