by Guest » 14 Jan 2025, 11:39
Ich arbeite mit WP All Import und Advanced Custom Fields (ACF). Ich brauche Hilfe, um sicherzustellen, dass beim Importieren von Daten eine neue Zeile zu einem Repeater-Feld hinzugefügt wird, ohne vorhandene Zeilen zu überschreiben.
Hier ist das spezifische Szenario:
Ich habe ein übergeordnetes Repeater-Feld namens Verkäufer mit den folgenden Unterfeldern:
Firma (Händlername)
Preis (Preis)
Link (Link)
Während des Imports muss ich Folgendes tun:
Überprüfen Sie, ob der Wert des Unternehmens mit dem eingehenden {company_name[1]} aus dem Datensatz übereinstimmt.
Wenn er bereits vorhanden ist, unternehmen Sie nichts.
Wenn er nicht vorhanden ist , fügen Sie dem Repeater-Feld eine neue Zeile mit den folgenden Werten hinzu
Code: Select all
bedrijf = {company_name[1]}
prijs = {search_price[1]}
link = {y_link[1]}
Derzeit überschreibt der Import das gesamte Repeater-Feld und entfernt vorhandene Zeilen, was ich vermeiden muss.
Ich habe versucht:
Code: Select all
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);
Aber ich schaffe es nicht, es zum Laufen zu bringen.
Ich arbeite mit WP All Import und Advanced Custom Fields (ACF). Ich brauche Hilfe, um sicherzustellen, dass beim Importieren von Daten eine neue Zeile zu einem Repeater-Feld hinzugefügt wird, ohne vorhandene Zeilen zu überschreiben.
Hier ist das spezifische Szenario:
Ich habe ein übergeordnetes Repeater-Feld namens Verkäufer mit den folgenden Unterfeldern:
Firma (Händlername)
Preis (Preis)
Link (Link)
Während des Imports muss ich Folgendes tun:
Überprüfen Sie, ob der Wert des Unternehmens mit dem eingehenden {company_name[1]} aus dem Datensatz übereinstimmt.
Wenn er bereits vorhanden ist, unternehmen Sie nichts.
Wenn er nicht vorhanden ist , fügen Sie dem Repeater-Feld eine neue Zeile mit den folgenden Werten hinzu
[code]bedrijf = {company_name[1]}
prijs = {search_price[1]}
link = {y_link[1]}
[/code]
Derzeit überschreibt der Import das gesamte Repeater-Feld und entfernt vorhandene Zeilen, was ich vermeiden muss.
Ich habe versucht:[code]
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);
[/code]
Aber ich schaffe es nicht, es zum Laufen zu bringen.