Toutes mes réponses sur les forums
-
AuteurMessages
-
12 février 2021 à 12 h 03 min en réponse à : [Résolu] WP-Members – activation compte abonné #2369361
Bonjour,
apparemment l’URL de votre page profil membre est : http://www.fhu-pacemm.fr/update-my-settings/
il faut donc en fin du code PHP remplacer:
'<a href="'.site_url().'/profil-membres/'.'">Profil Membres</a>';
par:
'<a href="'.site_url().'/update-my-settings/'.'">Mon Compte</a>';
bonne journée
Bonjour,
j’ai eu l’occasion de parler de ce sujet sur ce post:
https://wpfr.net/support/sujet/relayer-les-articles-de-mon-site-wp-sur-facebook/#post-2364716cordialement
j’ai oublié d’indiquer dans la liste des participants le nombre de réservation ou
achat de billet par participant.
Voici le code php:/*--------------- Afficher le nom des participants & nbr de réservation par participant aprés le ticket RSVP -------*/
function afficher_liste_participant() {
$participant = array();
$nom_participant = array();
$nbr_reservation = array();
$index=0;
$nbr_participant = 0;
echo '<h3>'.'Liste des participants'.'</h3>';
// ID de l'évènement
$event_id = get_the_ID();
//la classe wpdb est toujours instanciée au chargement de l’application
//et stockée dans une variable globale appelée $wpdb
global $wpdb;
// permet d'afficher les erreurs
$wpdb->show_errors();
/* ----- ---On récupère les Noms des participants
(un participant pouvant acheter plus d'un billet) --------*/
// les méta clés reliant le nom des participants à un événement dans la table postmeta sont:
// _tribe_rsvp_event pour un billet gratuit ou événement virtuel
// _tribe_tpp_event dans le cas d'achat de billet
// le champ meta_value de la table postmeta contient l'ID de l'évènement
// le post_id de la table postmeta est en relation avec l'id de la table posts
// ou sont enregitrés les noms des participants dans le champ post_title
// une valeur de post_title: edaa02c9a886c62668832b9ceaf3cd60 | DUPONT | 1
$requete="SELECT DISTINCT {$wpdb->prefix}posts.post_title
FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta
WHERE ({$wpdb->prefix}postmeta.post_id= {$wpdb->prefix}posts.id)
AND ({$wpdb->prefix}postmeta.meta_key = '_tribe_rsvp_event' OR {$wpdb->prefix}postmeta.meta_key = '_tribe_tpp_event')
AND ({$wpdb->prefix}postmeta.meta_value = $event_id )
ORDER BY {$wpdb->prefix}posts.post_title DESC
";
$result = $wpdb->get_results($requete);
// on récupère le nombre d'enregistrement, c'est a dire le nombre de billet achetés
// mais pas le nombre de participant car plusieurs achats possible de billet par une même personne
$nbr_enregistrement = $wpdb->num_rows;
if ($nbr_enregistrement > 0) {
// on récupère les lignes brutes des participants au format:
// soit Mr DUPONT ayant réservé pour 2 participants
// 1ère participant de Dupont: edaa02c9a886c62668832b9ceaf3cd60 | DUPONT | 1
// 2ème participant de Dupont: edaa02c9a886c62668832b9ceaf3cd60 | DUPONT | 2
foreach ($result as $row) {
$index++;
$participant[$index] = $row->post_title;
//echo $participant[$index].'<br>';
}
for ($nbr=1;$nbr<=$nbr_enregistrement;$nbr++) {
// On scinde la chaine de caractère en 3 segments et on récupère
// le nom et le nombre de participant
$tab = explode('|',$participant[$nbr],3);
$participant[$nbr]= $tab[1];
$nbr_reservation[$nbr]= TRIM($tab[2]);
// on élimine les noms en doublon (plusieurs achat possible de billet par une même personne)
// la requête de la base de données ayant été trié dans l'ordre décroissant
// le 1er nom trouvé dans la table pour une personne qui a acheté plusieurs billets
// aura pour le champ 'nbr_reservation' le nbr total de réservation
// array_search Renvoie la clé numérique d'une valeur en l'occurence le nom s'il se trouve dans
//la colonne 'nom' du tableau $nom_participant et FALSE dans le cas contraire
if(array_search($participant[$nbr], array_column($nom_participant, 'nom')) == false) {
$nbr_participant++;
$nom_participant[$nbr_participant]['nom'] = $participant[$nbr];
$nom_participant[$nbr_participant]['nbr_reservation'] = $nbr_reservation[$nbr];
}
}
// tri du tableau dans l'ordre croissant selon la colonne 'nom'
// le tableau est "re-indexé" à partir de 0
// option: SORT NATURAL pour tenir compte des participants
// qui renseigne aussi leur prénom ;
// option: SORT_FLAG_CASE pour ne pas tenir compte de la casse
array_multisort(array_column($nom_participant, 'nom'), SORT_ASC, SORT_NATURAL | SORT_FLAG_CASE, $nom_participant);
//print_r($nom_participant);
$index_liste=0;
// On Affiche la liste des participants dans un tableau de 4 colonnes
$nbr_col = 4;
// nbr de ligne du tableau arrondi à l'entier supérieur
$nbr_ligne_tab = ceil($nbr_participant/$nbr_col);
// Affichage de la table des participants
echo '<table class="table-participant">';
echo'<tbody>';
for ($index_ligne=1;$index_ligne<=$nbr_ligne_tab;$index_ligne++) {
echo '<tr>';
for ($index_colonne=1;$index_colonne<=$nbr_col ;$index_colonne++) {
echo '<td>'
.$nom_participant[$index_liste]['nom']
.' ('.$nom_participant[$index_liste]['nbr_reservation'].')'
.'</td>';
$index_liste++ ;
// l'affichage de la table est terminée si la condition est vrai
if ($index_liste > $nbr_participant - 1){
$index_colonne = $nbr_col + 1;
}
}
echo '</tr>';
}
echo'</tbody>';
echo '</table>';
}
}
add_action( 'tribe_template_after_include:tickets/v2/rsvp', 'afficher_liste_participant',10,3 );Le résultat final voir photo ci-jointe
Si cela peut servir a quelqu’un alors tant mieux!Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.10 février 2021 à 20 h 56 min en réponse à : Recherche de plugins mêlant Réservations et Abonnements #2369219Bonjour
Pour un abonnement mensuel , c’est donc un paiement récurrent.
j’ai eu l’occasion de parler de ce sujet ici: Abonnement
un exemple d’abonnement sur mon site: Rock 4 TempsPour la réservation de salle de réunion selon créneaux horaires
avec calendrier de disponibilités je vois bien cette extension: Booking Calendar
il vous faudra la version premium pour avoir accès aux créneaux horaire.Cordialement
Bonjour,
On clique sur convertir en blocs normaux(voir photo ci- jointe: exemple d’un bloc conseil réalisé avec la boite info de kadence block)
parfois ça ne marche pas alors faire la procédure suivante :
1) Je clique sur Modifier (le bouton bascule à Enregistrer)
2) convertir en bloc normaux
3) Enregistrer
4) A nouveau je clique sur convertir en blocs normauxOn peut maintenant modifier le bloc sans que cela ne modifie le bloc réutilisable.
Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.Pour info
photos ci-jointes qui montrent une personnalisation possible
respectivement pour la vue liste et le widget liste évènementFichiers joints :
Vous devez être connecté pour voir les fichiers joints.Bonjour,
Je termine par le code permettant d’insérer un tableau
après le ticket RSVP(voir photo ci-jointe) qui contient
la liste des participants.j’ai effectué seulement pour une personne deux achats de billets.
il y a donc 16 participants, mais 17 billets achetés.
On notera que dans le ticket RSVP est affiché 17 participants.
17 réservations est le terme plus approprié.voici le code PHP:
/*--------------- Afficher le nom des participants aprés le ticket RSVP -------*/
function afficher_liste_participant() {
$participant = array();
$nom_participant = array();
$index=0;
$nbr_participant = 0;
echo '<h3>'.'Liste des participants'.'</h3>';
// ID de l'évènement
$event_id = get_the_ID();
//la classe wpdb est toujours instanciée au chargement de l’application
//et stockée dans une variable globale appelée $wpdb
global $wpdb;
// permet d'afficher les erreurs
$wpdb->show_errors();
/* ----- ---On récupère les Noms distinct des participants
(un participant pouvant acheter plus d'un billet) --------*/
// les méta clés reliant le nom des participants à un événement dans la table postmeta sont:
// _tribe_rsvp_event pour un billet gratuit ou événement virtuel
// _tribe_tpp_event dans le cas d'achat de billet
// le champ meta_value de la table postmeta contient l'ID de l'évènement
// le post_id de la table postmeta est en relation avec l'id de la table posts
// ou sont enregitrés les noms des participants dans le champ post_title
// une valeur de post_title: edaa02c9a886c62668832b9ceaf3cd60 | DUPONT | 1
$requete="SELECT DISTINCT {$wpdb->prefix}posts.post_title
FROM {$wpdb->prefix}posts,{$wpdb->prefix}postmeta
WHERE ({$wpdb->prefix}postmeta.post_id= {$wpdb->prefix}posts.id)
AND ({$wpdb->prefix}postmeta.meta_key = '_tribe_rsvp_event' OR {$wpdb->prefix}postmeta.meta_key = '_tribe_tpp_event')
AND ({$wpdb->prefix}postmeta.meta_value = $event_id )
ORDER BY {$wpdb->prefix}posts.post_title ASC
";
$result = $wpdb->get_results($requete);
// on récupère le nombre d'enregistrement, c'est a dire le nombre de billet achetés
// mais pas le nombre de participant car plusieurs achats possible de billet par une même personne
$nbr_enregistrement = $wpdb->num_rows;
if ($nbr_enregistrement > 0) {
// on récupère la ligne brute des participants au format: edaa02c9a886c62668832b9ceaf3cd60 | DUPONT | 1
foreach ($result as $row) {
$index++;
$participant[$index] = $row->post_title;
}
// On scinde la chaine de caractère en 3 segments et on récupère le nom du participant
for ($nbr=1;$nbr<=$nbr_enregistrement;$nbr++) {
$tab = explode('|',$participant[$nbr],3);
$participant[$nbr]= $tab[1];
}
// on élimine les noms en doublon (plusieurs achat possible de billet par une même personne)
for ($nbr=1;$nbr<=$nbr_enregistrement;$nbr++) {
if (!in_array($participant[$nbr],$nom_participant)){
$nbr_participant++;
$nom_participant[$nbr_participant] = $participant[$nbr];
}
}
// tri du tableau dans l'ordre croissant,le tableau est "re-indexé" à partir de 0
// option: SORT NATURAL pour tenir compte des participants
// qui renseigne aussi leur prénom ;
// option: SORT_FLAG_CASE pour ne pas tenir compte de la casse
sort($nom_participant,SORT_NATURAL | SORT_FLAG_CASE);
$index_liste=0;
// On Affiche la liste des participants dans un tableau de 4 colonnes
$nbr_col = 4;
// nbr de ligne du tableau arrondi à l'entier supérieur
$nbr_ligne_tab = ceil($nbr_participant/$nbr_col);
// Affichage de la table des participants
echo '<table class="table-participant">';
echo'<tbody>';
for ($index_ligne=1;$index_ligne<=$nbr_ligne_tab;$index_ligne++) {
echo '<tr>';
for ($index_colonne=1;$index_colonne<=$nbr_col ;$index_colonne++) {
echo '<td>'.$nom_participant[$index_liste].'</td>';
$index_liste++ ;
// l'affichage de la table est terminée si la condition est vrai
if ($index_liste > $nbr_participant - 1){
$index_colonne = $nbr_col + 1;
}
}
echo '</tr>';
}
echo'</tbody>';
echo '</table>';
}
}
add_action( 'tribe_template_after_include:tickets/v2/rsvp', 'afficher_liste_participant',10,3 );Le code CSS pour le tableau des participants:
/* marge ticket RSVP par rapport a la table des participants */
.tribe-common.event-tickets{margin-bottom:30px;}
/* affichage dans une table des participants à l'évènement */
.table-participant td {
border: 1px solid #e4e4e4;
padding: 5px;
vertical-align:middle;
text-align: center;
}
/* couleur de fond pour les lignes paire de la table */
.table-participant tbody > tr:nth-child(2n) td {
background: #EFF8FE;
}bonne journée
Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.C’est normal il faut avant modification convertir le bloc réutilasable en bloc normal.
Le bloc réutilsable propose cela dans son menu.
Merci Ferman, mais pour les cours de danse c’est un évènement fictif histoire de ma rappeler la vie d’avant.
Misére!
Une dernière précision, voir image jointe de l’affichage
du bloc RSVP et celui de la liste des participants sur la page de l’évènement.Pour la liste des participant seule la photos est affiché a deux conditions:
– Le participant à donné son accord via un sélecteur avant la soumission du formulaire
de réservation
– Avoir un gravatar.
donc peu d’intérêt pour ce bloc !Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.Bonjour,
j’ai regardé la doc de l’extension The Events Calendar puis d’ Event tickets.
j’ai installé ces deux extensions en version free.
Pas simple au niveau du code.
n’ayant pas de compte Pay Pal j’ai juste configuré un RSVP avec Event tickets pour un billet gratuit.Je souhaiterais que sur cette page, pour l’événement du 1er Mars, soit indiqué :
– Soit qu’il y a déjà des réservations,
– Soit le nombre de place restantePour votre problème j’ai réussi à afficher le nbr de billet restant & le nbr de participant
dans le calendrier pour la vue Mois(voir photo ci-jointe), pour la vue Liste l’extension Event Tickets affiche
par défaut le nbr de billet restant.
Afficher les noms des participants dans une grille de calendrier, il n’ y a pas suffisamment de place.Voici le code PHP pour cet affichage dans le calendrier en vue Mois
/*--------------- Afficher le nbr de billet restant & nbr participant en vue Mois -------*/
function nbr_billet_restant_nbr_participant() {
// ID de l'évènement
$event_id = get_the_ID() ;
//la classe wpdb est toujours instanciée au chargement de l’application
//et stockée dans une variable globale appelée $wpdb
global $wpdb;
// permet d'afficher les erreurs
$wpdb->show_errors();
// les méta clés reliant un ticket à un événement sont:
// _tribe_rsvp_for_event pour un billet gratuit ou événement virtuel
// _tribe_tpp_for_event dans le cas d'achat de billet
// on récupère l'ID du ticket en correspondance avec l'ID de l'événment
$requete = "SELECT post_id
FROM {$wpdb->prefix}postmeta
WHERE (meta_value = $event_id
AND
(meta_key = '_tribe_rsvp_for_event' OR meta_key = '_tribe_tpp_for_event')
)";
$ticket_id = $wpdb->get_var($requete);
// on sort si on n'a pas crée de billet pour l'événement en cours
if ( empty( $ticket_id ) ) {
return;
}
// Nombre de billet restant
$requete = "SELECT meta_value
FROM {$wpdb->prefix}postmeta
WHERE (post_id = $ticket_id AND meta_key = '_stock')";
$nbr_billet = $wpdb->get_var($requete);
// Nombre de participant
$requete = "SELECT meta_value
FROM {$wpdb->prefix}postmeta
WHERE (post_id = $ticket_id AND meta_key = 'total_sales')";
$nbr_participant = $wpdb->get_var($requete);
// autre classe possible: tribe-common-b2 pour une police de 14px
echo'<span class="tribe-common-h8">billets restants: ' . $nbr_billet . '</span>';
echo'<span class="tribe-common-h8">nbr participant: ' . $nbr_participant . '</span>';
}
add_action( 'tribe_template_after_include:events/v2/month/calendar-body/day/calendar-events/calendar-event/title', 'nbr_billet_restant_nbr_participant',10,3 );J’ai tenu compte des billets pour un achat avec Paypal mais je n’ai pas pu tester.
Vous pouvez ajouter ce code avec l’extension Code Snippets
bonne journée
Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.Bonjour,
Pour le PB de menu Espace Membre paramétré pour n’être accessible qu’aux utilisateurs connectés,
je ne peux vous répondre, car je n’ai pas cette configuration sur mon site.Au niveau du widget WP Members, le code qui permet de personnaliser les infos pour le membre
connecté , c’est du langage PHP, il faut donc installer l’extension code snippets
et renseigner le code PHP que je vous ai indiqué via cette extension.28 janvier 2021 à 12 h 57 min en réponse à : Quelles solutions pour site de vidéos à contenu réservé abonnés payant #2367630J’ai réussi a faire tout ceci avec des extensions free mais cela n’est pas simple.
Mon site: ROCK 4 TEMPS
Ce sont les paiements récurrents qui posent problème.
J’ ai d’abord cŕée un CPT pour toutes les viďéos.
Extension de membre: WPMember avec création d’une adhésion aux vidéos
Passerelle de paiement stripe a partir de laquelle j’ai cŕée un produit d’ abonnement et récupérer le code intégration pour un bouton
Possible intégration bouton avec une extension de mémoire: stripe checkout
Player video: Modern vidéos player sur envato
Bonjour,
Flobogo j’avais bien lu votre message,
pour moi le problème vient de la configuration du thème.En effet si les options de réglages des entrées du blog a partir du menu
Apparence/Personnaliser/blog/entrée du blog sont mal configuré,
on se retrouve avec le problème que vous avez souligné:la “page de catégorie” n’affiche rien
il faut renseigner correctement comme photos ci-jointe
la position des éléments visible sinon la page de catégorie
ne s’affiche pas, indépendamment des articles qui resteront visibles.C’est pourquoi j’ai expliqué pas a pas la configuration du
thème, mais effectivement les permaliens pouvez aussi être la source du problème.Fichiers joints :
Vous devez être connecté pour voir les fichiers joints.21 janvier 2021 à 5 h 25 min en réponse à : Certaines nouvelles pages ne se référence pas dans google #2366809C’est OK
-
AuteurMessages