text

WP All Import : Comment contrôler vos imports avec wp_all_import_is_post_to_update

Tu connais sûrement cette situation :

  • Un contenu est modifié manuellement dans le back-office
  • L’import quotidien ne l’écrase pas car le fichier source n’a pas changé
  • Résultat : un décalage entre l’import et ce qui est en base

Les solutions possibles

1. La méthode simple : le champ de contrôle

Parfait quand tu as :

  • Une date de mise à jour dans ton import
  • Un champ qui sert de référence unique
  • Un besoin de comparaison simple

💡 Le principe : on compare la date stockée avec celle du fichier. Si plus récente = mise à jour.

2. La méthode complète : le hash MD5

Idéale pour :

  • Les imports avec de nombreux champs customs
  • Un besoin de contrôle total
  • Éviter les comparaisons champ par champ

Le process en 3 étapes :

  1. Récupération des metas actuelles :
$post_metas = get_post_meta( get_the_ID() );
// Filtrage des metas à contrôler
// Génération du MD5
  1. Création du hash pour les nouvelles données (le fichier, l’url d’import)
  2. Comparaison des hashs

Le hook magique : pmxi_is_post_to_update

add_filter(
	'wp_all_import_is_post_to_update',
	function ( $continue_import, $post_id, $data, $import_id ) {

		// la magie c'est ici :)

		return $continue_import; // default
	},
	10,
	4
);

Les paramètres :

  • $continue_import : le verdict de WP All Import (true/false)
  • $post_id : l’ID du post concerné
  • $data : les données du fichier
  • $import_id : l’ID de l’import

La doc du hook ici

Bonus : Hooks utiles

pmxi_saved_post

add_action(
	'pmxi_saved_post',
	function ( $post_id, $xml_node, $is_update ) {

		// Actions post-traitement
		
	},
	10,
	3
);

Parfait pour :

  • Géocoding
  • Enrichissement de données
  • Traitements complémentaires
  • Etc.

pmxi_after_xml_import

add_action(
	'pmxi_after_xml_import',
	function ( $import_id, $import ) {

		// Actions fin d'import
	},
	10,
	2
);

Utilise-le pour :

  • Nettoyage global
  • Refresh de cache
  • Notifications
  • Etc.

Pro Tips 🚀

Pour limiter à certains types de contenus :

add_filter(
	'wp_all_import_is_post_to_update',
	function ( $continue_import, $post_id, $data, $import_id ) {

		$tmp_current_post_type = get_post_type( $post_id );

		// only for cpt1 & cpt2
		if ( ! in_array( $tmp_current_post_type, array( 'cpt1', 'cpt2' ) ) ) {
			return $continue_import;
		}


		return $continue_import; // default
	},
	10,
	4
);
add_action(
	'pmxi_saved_post',
	function ( $post_id, $xml_node, $is_update ) {

		$tmp_current_post_type = get_post_type( $post_id );

      	// only for cpt1 & cpt2
		if ( ! in_array( $tmp_current_post_type, array( 'cpt1', 'cpt2' ) ) ) {
			return;
		}

      // la magie c'est ici :)
		
	},
	10,
	3
);
Samy Kantari - Expert WordPress + IA

Kantari Samy

Expert WordPress + IA

👨‍💻 10 ans dans le game WordPress, chez Whodunit, à bricoler du code, à dompter des bugs et à faire tourner des projets de toutes tailles.
Puis l’IA est arrivée… et là, révélation 💡 !
J’ai switché de mindset, réinventé ma façon de coder et avec le vibe coding : une nouvelle ère où je ne suis plus limité par le temps ni par les outils.

Aujourd’hui ? Je code toujours… Mais avec mon copilote IA.
On forme une team de choc. Lui, c’est la puissance. Moi, c’est la vision. Ensemble, on déverrouille ce qui semblait impossible hier. 🚀

10+ Années d'expérience
+++ Projets réalisés
80% code par IA
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires