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 :
- 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 »
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,
- Choisisez « Personnalisée »
- Lr type « CSV »
- Aucun caractère d’échapement
- Et faire afficher les nom de colonnes en première ligne
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]