Un utilisateur a demandé 👇
Bonjour, je dois interdire l’importation de toutes les lignes avec des dates non pertinentes dans le champ {date} dans la règle “{date}” >= Aujourd’hui. Ou comment exclure l’import des lignes CSV qui ne respectent pas cette règle ? Quelle est la meilleure façon de faire de xPath la première étape ou la fonction PHP ? Pouvez-vous montrer un exemple de ce code php comment le faire? S’il te plait, aide-moi)
Merci!
Ce sujet a été modifié il y a 2 ans et 4 mois par.
(@wpallimport)
il y a 2 ans, 4 mois
Bonjour @alexnn
Malheureusement, il n’est pas possible de filtrer par date dans la section des options de filtrage de l’import. Au lieu de cela, vous devrez utiliser le lien “wp_all_import_is_post_to_create”: https://github.com/soflyy/wp-all-import-action-reference/blob/master/all-import/wp_all_import_is_post_to_create.php.
Voici un exemple de collection que vous pouvez ajuster selon vos besoins :
function my_is_post_to_create( $continue_import, $data, $import_id ) {
if ( $import_id == 18 ) { // Change this to your actual import ID.
if ( strtotime( $data['date'] ) >= strtotime( "Today" ) ) {
return false;
} else {
return true;
}
}
return true;
}
add_filter('wp_all_import_is_post_to_create', 'my_is_post_to_create', 10, 3);
(@alexnn)
il y a 2 ans, 4 mois
Salut! Merci pour un tel soutien ! J’essaie d’abord de préparer une date à partir de la chaîne. j’essaie ce code
$desc="{string[1]}";
$data = preg_replace("/(.*?)((d{1,2})-(d{1,2})-(d{4}))/i", "$5-$4-$3", $desc);
$data = strtotime( $data );
function my_is_post_to_create( $continue_import, $data, $import_id ) {
if ( $import_id == 8 ) { // Change this to your actual import ID.
if ( $data >= strtotime( "Today" ) ) {
return false;
} else {
return true;
}
}
return true;
}
add_filter('wp_all_import_is_post_to_create', 'my_is_post_to_create', 10, 3);
mais tous les enregistrements sont ignorés… PASSER : via le filtre wp_all_import_is_post_to_create…. Qu’est-ce qui ne va pas ?
(@wpallimport)
il y a 2 ans, 4 mois
Bonjour @alexnn
Vous devrez toucher la date à l’intérieur du tableau $data dans la fonction my_is_post_to_create. En supposant que la date se trouve dans l’élément d’importation {string[1]}, quelque chose comme ceci devrait fonctionner :
function my_is_post_to_create( $continue_import, $data, $import_id ) {
$date = preg_replace("/(.*?)((d{1,2})-(d{1,2})-(d{4}))/i", "$5-$4-$3", $data['string']);
$date = strtotime( $date );
if ( $import_id == 8 ) { // Change this to your actual import ID.
if ( $date >= strtotime( "Today" ) ) {
return false;
} else {
return true;
}
}
return true;
}
add_filter('wp_all_import_is_post_to_create', 'my_is_post_to_create', 10, 3);
(@alexnn)
il y a 2 ans, 4 mois
Salut! Malheureusement, ce code ne fonctionne pas. mon {fil[1]} contient “mots blabla et date (format dmY)”. Quel format de date la fonction $data comprend-elle ? $ détails[‘format???’]
(@wpallimport)
il y a 2 ans, 4 mois
Bonjour @alexnn
La variable $data est un tableau d’éléments d’importation et de leurs valeurs, elle ne reconnaît ni ne modifie les formats de date. Vous devez supprimer la date de la modification $data, puis l’analyser.
Veuillez noter que le code que nous avons fourni n’est qu’un exemple de code ; vous devrez l’ajuster pour qu’il fonctionne avec vos données. Malheureusement, nous ne pouvons pas écrire de code personnalisé pour votre projet.
Cela a-t-il résolu votre problème ?
Was this helpful?
0 / 0