Добавьте строку повторителя ACF без перезаписи существующих данныхPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Добавьте строку повторителя ACF без перезаписи существующих данных

Сообщение Anonymous »

Я работаю с WP All Import и Advanced Custom Fields (ACF). Мне нужна помощь, чтобы при импорте данных новая строка добавлялась в поле повторителя без перезаписи существующих строк.
Вот конкретный сценарий:
У меня есть родительское поле повторителя, называемое продавцы со следующими подполями:
компания (название продавца)
цена (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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»