Site icon Code The World

Migrer de « My Calendar » vers « The Events Calendar »

Les extensions :

Ce qui est pratique, c’est que The Events Calendar gère l’importation par CSV d’évènements.

Comme précisé dans les instruction d’importation, il vaut mieux commencer par les lieux et oragnisateurs. Etant donné qu’il n’y a pas d’organisateur dans « My Calendar », nous allons passer directement aux lieux.

Les informations de My Calendar sont stockées dans des tables distinctes :

Pour les spécification, voici l’adresse :
https://theeventscalendar.com/knowledgebase/csv-files-options-and-examples/

 

Récupérer les données

Pour simplifier l’import, voici la requête SQL pour les lieux :

[pastacode lang= »sql » message= »location » highlight= » » provider= »manual »]

SELECT 
  location_label AS 'Venue Name',
  location_state AS 'Venue Country', /* Attention utiliser le code pays (ex: FR, UK, DE..), a voir au cas par cas */
  location_street AS 'Venue Address',
  location_street2 AS 'Venue Address 2',
  location_city AS 'Venue City',
  location_region AS 'Venue State/Province',
  location_postcode AS 'Venue Zip',
  location_phone AS 'Venue Phone',
  location_url AS 'Venue Website'
FROM
  wp_my_calendar_locations

[/pastacode]

Et celle pour les événements :

Vous remarquerez que pour le champ post_content, les saut de lignes sont remplacé ainsi que les virgules.

[pastacode lang= »sql » message= »event » highlight= » » provider= »manual »]

SELECT 
	event_title AS 'EVENT NAME',
	/* fonction REPLACE :
		- Remplace les saut de ligne par un du <html> afin de ne pas perturber le fichier CSV
		- Remplace aussi les virgules ',', par '§' (caractère qui a peux de chance d'être utilisé)
		*/
	REPLACE(REPLACE(REPLACE(event_desc, '§', ','), CHAR(10), '
'), CHAR(13), '') AS 'EVENT DESCRIPTION', 
	event_begin AS 'START DATE',
	event_time AS 'START TIME',
	event_end AS 'END DATE',
	event_endtime AS 'END TIME',
	CASE
		WHEN ( event_time = '00:00:00' AND event_endtime = '23:59:59' ) THEN TRUE
		ELSE FALSE
	END AS 'ALL DAY EVENT',
	event_label AS 'EVENT VENUE NAME',
	'' AS 'ORGANIZER NAME',
	FALSE AS 'SHOW MAP LINK',
	FALSE AS 'SHOW MAP',
	0 AS 'EVENT COST',
	'€' AS 'CURRENCY SYMBOL',
	'suffix' AS 'EVENT CURRENCY POSITION',
	-- event_phone AS 'EVENT PHONE', /* Modification documentation */
	cat.category_name AS 'CATEGORIES',
	'' AS 'EVENT TAGS',
	event_link AS 'EVENT WEBSITE',
	event_image AS 'EVENT FEATURED IMAGE'
FROM
	wp_my_calendar AS cal 
		INNER JOIN wp_my_calendar_categories AS cat 
		ON cal.event_category = cat.category_id 

[/pastacode]

Exportation

Pour exporter le fichier en CSV, je vais vous le présenter via phpMyAdmin :

Dans phpMyAdmin, sélectionnez votre base de données et allez dans l’onglet « SQL »

Copiez la requête SQL et éxecutez

Le résultat apparait, allez tout en bas et cliquez sur « Exporter »

Il reste plus qu’a paramétrer l’export,

Module d’import

Maintenant nous avons le fichier, nous pouvons l’importer.
Allez dans « Evènements > Importer », onglet « CSV » et réalisez l’importation en mettant le bon champ correspondant.

Correction

Maintenant que vos donnez sont importées, n’oubliez pas de corriger la virgule dans post_content.

[pastacode lang= »sql » message= »correction » highlight= » » provider= »manual »]

UPDATE 
	wp_posts 
SET
	post_content = REPLACE(post_content, '§', ',') 
WHERE
	post_type = 'tribe_events' 

[/pastacode]

 

Quitter la version mobile