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

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.

event_calendar_import

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 :

  • wp_my_calendar
  • wp_my_calendar_categories
  • wp_my_calendar_events
  • wp_my_calendar_locations

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 »

export_phpMyAdmin_1

Copiez la requête SQL et éxecutez

export_phpMyAdmin_2

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

export_phpMyAdmin_3

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

  • Choisisez « Personnalisée »
  • Lr type « CSV »
  • Aucun caractère d’échapement
  • Et faire afficher les nom de colonnes en première ligne

export_phpMyAdmin_4

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]

 


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *