Thèmes

⌘K
  1. Thèmes
  2. Extraits de code

Extraits de code

Il s'agit d'un Au niveau du développeur document. Si vous n'êtes pas familiarisé avec le code/les modèles et la résolution de conflits potentiels, veuillez vous adresser à un développeur qui connaît bien FooEvents et/ou WooCommerce.

Important, à lire d'abord #

Ces extraits sont fournis à titre gracieux et ne font pas partie de l'offre de produits de FooEvents. Ils sont considérés comme des personnalisations et ne sont pas officiellement pris en charge par FooEvents. En tant que tel, nous ne fournissons pas de support pour les snippets et les personnalisations, conformément à notre politique de support. Conditions d'utilisation. L'utilisation est à vos risques et périls.

Compléter automatiquement les commandes #

Cela permet d'envoyer automatiquement les billets une fois le paiement reçu, au lieu de devoir compléter manuellement la commande. Veuillez vous assurer que les produits de votre événement sont réglés sur "Virtuel" et "Téléchargeable"comme expliqué dans notre documentation d'aidesinon, l'ordre ne sera pas s'achève automatiquement, même si le paiement a été effectué.

Ajoutez le code suivant dans la section functions.php ou via un plugin qui permet d'ajouter des fonctions personnalisées, comme le plugin Extraits de code plugin. Évitez d'ajouter du code personnalisé directement dans la section functions.php car il sera écrasé lors de la mise à jour du thème.

Vous pouvez également remplacer le statut "Terminé" par un autre statut de commande tel que "En cours de traitement".

/**
 * Compléter automatiquement toutes les commandes WooCommerce.
 */
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' ) ;
function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
        return ;
    }

    $order = wc_get_order( $order_id ) ;
    $order->update_status( 'completed' ) ;
}

Afficher le nom et l'adresse électronique du participant dans l'e-mail d'administration de la nouvelle commande #

Ajoutez l'extrait de code suivant à la section functions.php fichier. Vous pouvez modifier l'e-mail dans lequel il s'affiche en utilisant un autre format d'e-mail. crochet.

.

[php]
add_action( 'woocommerce_email_customer_details', 'fooevents_display_attendee_details_in_new_order_email', 10 , 4) ;
function fooevents_display_attendee_details_in_new_order_email($order, $sent_to_admin, $plain_text, $email){
    echo "<h3>Détails sur les participants</h3>" ;
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true) ;
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>" ;
            echo '<strong>Prénom</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />' ;
            echo '<strong>Nom de famille</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />' ;
            echo '<strong>Adresse électronique</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />' ;
            echo "</p>";
        }
    }
}

Afficher tous les champs personnalisés des participants sans étiquette dans l'e-mail d'administration de la nouvelle commande #

Ajoutez l'extrait de code suivant à la section functions.php fichier. Vous pouvez modifier l'e-mail dans lequel il s'affiche en utilisant un autre format d'e-mail. crochet.

.

[php]
add_action( 'woocommerce_email_customer_details', 'fooevents_display_attendee_details_in_new_order_email', 10 , 4) ;
function fooevents_display_attendee_details_in_new_order_email($order, $sent_to_admin, $plain_text, $email){
    echo "<h3>Détails sur les participants</h3>" ;
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true) ;
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>" ;
            echo '<strong>Prénom</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />' ;
            echo '<strong>Nom de famille</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />' ;
            echo '<strong>Adresse électronique</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />' ;
            foreach ($ticket['WooCommerceEventsCustomAttendeeFields'] as $caf) {
                 echo $caf.'<br />' ;
            }
            echo "</p>";
        }
    }
}

Afficher les champs personnalisés des participants avec des étiquettes dans l'e-mail d'administration de la nouvelle commande #

Ajoutez l'extrait de code suivant à la section functions.php fichier. Vous pouvez modifier l'e-mail dans lequel il s'affiche en utilisant un autre format d'e-mail. crochet. Veillez à remplacer "ovsxtmynwagotamjqieq" et "ruzwhgbuhzuzzdwnnaxe" dans le code de l'exemple par le code de votre champ de participant personnalisé. Vous trouverez ces informations en éditant un billet et en recherchant chaque champ de participant personnalisé dans la section "Champs personnalisés". Vous devrez ajouter chaque champ de participant personnalisé et son étiquette individuellement.

.

[php]
add_action( 'woocommerce_email_customer_details', 'fooevents_display_attendee_details_in_new_order_email', 10 , 4) ;
function fooevents_display_attendee_details_in_new_order_email($order, $sent_to_admin, $plain_text, $email){
    echo "<h3>Détails sur les participants</h3>" ;
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true) ;
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>" ;
            echo '<strong>Prénom</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />' ;
            echo '<strong>Nom de famille</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />' ;
            echo '<strong>Adresse électronique</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />' ;
            echo '<strong>Anniversaire</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ovsxtmynwagotamjqieq'].'.<br />' ;
            echo '<strong>Chanson préférée</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ruzwhgbuhzuzzdwnnaxe'].'.<br />' ;
            echo "</p>";
        }
    }
}

Afficher l'heure de début de l'événement dans la liste des événements #

Ajoutez l'extrait de code suivant à la section functions.php fichier. Stylez l'affichage de l'heure en ajoutant une feuille de style CSS pour la classe "fooevents-date".

Modifiez l'emplacement de l'heure en utilisant un autre format d'affichage. crochet.

.

[php]
function fooevents_display_time_in_shop_listing() {
global $post ;
if (is_front_page() || is_home() || is_shop() || is_product_category() || is_product_tag()) {
echo '<div class="fooevents-date">' ;
echo get_post_meta($post-&gt;ID, 'WooCommerceEventsHour', true).':' ;
echo get_post_meta($post-&gt;ID, 'WooCommerceEventsMinutes', true). ' ' ;
echo get_post_meta($post-&gt;ID, 'WooCommerceEventsPeriod', true) ;
echo '</div>' ;
}
}
add_filter('woocommerce_after_shop_loop_item_title', 'fooevents_display_time_in_shop_listing', 35 ) ;[/php]

Afficher les participants inscrits sous forme de tableau #

Ajoutez l'extrait de code suivant à la section functions.php pour afficher tous les participants inscrits à votre événement dans un tableau au format grille. Après avoir ajouté l'extrait de code, vous pouvez utiliser le shortcode comme suit :

[fooevents_attendees]

pour afficher tous les participants à tous les événements, ou comme ceci :

[fooevents_attendees product_id=123]

où "123" est l'identifiant de l'événement pour lequel vous souhaitez afficher la liste des participants.

function fooevents_display_attendees($attributes) {
 
  $product_id='' ;
  if(!empty($attributes['product_id'])) {
    $product_id = $attributes['product_id'] ;
  }

  $output ='' ;
  $args = array(
    'numberposts' =&gt; -1,
    'posts_per_page' =&gt; -1,
    'post_type' =&gt; 'event_magic_tickets',
    'meta_query' =&gt; array(
      'relation' =&gt; 'OR',
      array(
        'key' =&gt; 'WooCommerceEventsProductID',
        'value' =&gt; $product_id,
        'compare' =&gt; 'LIKE'
      )
    )
  ) ;

   $the_query = new WP_Query( $args ) ;

  if( $the_query-&gt;have_posts() ) :
    while ( $the_query-&gt;have_posts() ) : $the_query-&gt;the_post() ;
    $postid = $the_query-&gt;post-&gt;ID ;
     
      // affiche tous les résultats - PERSONNALISEZ A VOTRE CARACTERE
      $output .= "<tr>" ;
      $output .= "<td>".get_the_title()."</td>" ;
      $output .= "<td>".get_post_meta($postid, 'WooCommerceEventsPurchaserFirstName', true).".</td>" ;
      $output .= "<td>".get_post_meta($postid, 'WooCommerceEventsPurchaserLastName', true).".</td>" ;
      $output .= "</tr>" ;
         
    endwhile ;
  endif ;
  wp_reset_query() ;
  $output ="<table>"Sortie .1TP12".</table>" ;
  return $output ;
   
}
add_shortcode("fooevents_attendees", "fooevents_display_attendees") ;
[/php]

Afficher la date de l'événement avant le titre sur la page du produit #

Modifiez l'emplacement de la date en utilisant un autre format. crochet.

.

[php]
function fooevents_display_date_on_single() {
  global $post ;
  $product = wc_get_product( $post-&gt;ID ) ;
  $start_date = $product-&gt;get_meta( 'WooCommerceEventsDate' ) ;
  $end_date = $product-&gt;get_meta('WooCommerceEventsEndDate' ) ;
  if ( $end_date ) {
    printf(
      '<h3>%s</h3>',
      esc_html( $start_date . ' - ' . $end_date )
    ) ;
  } else if( $start_date ) {
    printf(
      '<h3>%s</h3>',
      esc_html( $start_date )
    ) ;
  }
}
add_action( 'woocommerce_single_product_summary', 'fooevents_display_date_on_single' ) ;

Si vous souhaitez que la date de l'événement soit disponible sous la forme d'un code court, vous pouvez ajouter la ligne suivante sous la fonction :

add_shortcode( 'fooevents_date_on_single', 'fooevents_display_date_on_single') ;

Vous pouvez ensuite utiliser le shortcode [fooevents_date_on_single] pour afficher la date de l'événement sur la page.

Remplacer l'icône du siège sur le plan de table par une image différente #

Modifiez l'extrait de code CSS suivant en ajoutant l'URL d'une image différente qui remplacera l'image par défaut pour tous les sièges. Ajoutez l'extrait de code modifié au fichier CSS personnalisé de votre thème.

#fooevents_seating_dialog .fooevents_seating_chart_view_row span {
  background-image : url(../images/seat.svg) ;
}

Supprimer l'icône du siège sur le plan de salle pour que les sièges s'affichent sous forme de cases. #

#fooevents_seating_dialog .fooevents_seating_chart_view_row span {
  background-image : none ;
}

Modifier le sens des numéros de sièges sur le plan de salle #

#fooevents_seating_dialog .fooevents_seating_chart_view_row {
  display : flex ;
  flex-direction : row-reverse ;
  justify-content : flex-end ;
}

Afficher les sièges impairs à droite et les sièges pairs à gauche #

#fooevents_seating_dialog .fooevents_seating_chart_view_row > span:nth-of-type(even) {
  float : left ;
}

Afficher les sièges au milieu du plan de salle #

[css]
#fooevents_seating_dialog .fooevents_seating_chart_view_row_name,
#fooevents_seating_dialog .fooevents_seating_chart_view_row {
  text-align : center ;
}
[/css]

Laisser le plan de salle défiler horizontalement au lieu d'afficher les sièges de la rangée suivante #

Cela peut être utile si vous avez plusieurs sièges par rangée et que vous souhaitez qu'ils s'affichent les uns à côté des autres plutôt que sur la rangée suivante s'ils ne tiennent pas sur une seule ligne.

#fooevents_seating_dialog .fooevents_seating_chart_view_row {
  overflow-x : scroll ;
  white-space : nowrap ;
}

Afficher une grille de calendrier sur les ordinateurs de bureau et une liste de semaines de calendrier sur les téléphones portables #

Ajoutez deux shortcodes de calendrier sur la page ou l'article où vous souhaitez afficher votre calendrier. Le premier shortcode affichera une grille de calendrier et devrait ressembler à ceci :

[fooevents_calendar id="desktop"]

Le deuxième shortcode affichera une liste de semaines de calendrier et devrait ressembler à ceci :

[fooevents_calendar id="mobile" defaultView="listWeek"]

Ajoutez l'extrait de code CSS suivant au fichier CSS personnalisé de votre thème. Assurez-vous que la valeur du sélecteur CSS ID est la même que la valeur de l'attribut "id" que vous avez spécifié dans le shortcode. Vous pouvez ajuster la propriété "max-width" à la taille de l'écran où vous souhaitez que la liste des semaines du calendrier s'affiche et que la grille du calendrier soit masquée.

#desktop_fooevents_calendar {
  display : block ;
}
    
#mobile_fooevents_calendar {
  display : none ;
}
    
@media screen and (max-width : 600px) {
  #desktop_fooevents_calendar {
    display : none ;
  }
    
  #mobile_fooevents_calendar {
    display : block ;
  }    
}

Modifier la position de l'icône Copier les détails de l'acheteur #

L'extrait suivant aligne le bouton de copie à droite de l'étiquette du prénom :

.fooevents-copy-from-purchaser {
	float : right ;
	margin-bottom:-1.7em
}

Si vous n'utilisez pas d'étiquettes mais plutôt des espaces réservés pour les entrées, veuillez utiliser l'extrait de code suivant :

.fooevents-copy-from-purchaser {
	float : right ;
	margin-top:-2em
}

Afficher l'onglet "Détails de l'événement" en premier sur la page de l'événement #

Ajoutez l'extrait de code suivant à la section functions.php fichier.

add_filter('woocommerce_product_tabs', 'reorder_tabs', 98 ) ;
function reorder_tabs( $tabs ) {

    $tabs['woocommerce_events']['priority'] = 1 ;
    return $tabs ;

}

Diriger tous les boutons "Ajouter au panier" vers les pages produits #

S'il s'agit d'un produit simple, par défaut, le bouton "Ajouter au panier" ajoutera automatiquement un produit au panier du client. Lorsque vous utilisez l'extension FooEvents Réservations, vous pouvez demander à vos clients d'aller d'abord sur la page du produit pour sélectionner la date et le créneau de réservation. L'extrait suivant garantit que lorsque l'utilisateur clique sur le bouton "Ajouter au panier" pour les produits simples, il est dirigé vers la page du produit.

add_filter('woocommerce_loop_add_to_cart_link', 'fooevents_modify_add_to_cart_button_url', 10, 2 ) ;
function fooevents_modify_add_to_cart_button_url( $button, $product ) {
    if (is_product_category() || is_shop()) {
        $button_text = $product-&gt;add_to_cart_text() ;
        $button_link = $product-&gt;get_permalink() ;
        $button = '<a class="button" href="/fr/' . $button_link . '/">' . $button_text . '</a>' ;
        return $button ;
    }
}

Affichage de FREE si le prix de l'événement est fixé à zéro (0) #

Ajoutez l'extrait de code suivant à la section functions.php si vous voulez changer les événements et les produits dont le prix est "0" en "GRATUIT". Vous pouvez également remplacer le mot "GRATUIT" par un autre mot ou une autre phrase, ou le laisser vide si vous ne voulez rien afficher.

add_filter( 'woocommerce_get_price_html', 'wp_price_free_zero_empty', 100, 2 );
function wp_price_free_zero_empty( $price, $product ) {
	 if ( '' === $product->get_price() || 0 == $product->get_price() ) {
		$price = 'FREE';
	}
	return $price;
}

Afficher les produits et les variations (tickets) dans un tableau en forme de grille #

Ajoutez l'extrait de code suivant à la section functions.php afin d'afficher les produits et les variations dans un tableau au format grille sur la page de l'événement/du produit au lieu de la liste déroulante par défaut. Chaque option de billet sera listée dans une nouvelle ligne et aura son propre sélecteur de quantité.

A noter : Cet extrait de code n'est pas compatible avec l'application FooEvents Sièges et FooEvents Réservations les sélecteurs de pages de produits.

les sélecteurs de pages de produits.

[php]
/**
 * Affiche les variations dans un tableau.
 */

function woocommerce_variable_add_to_cart() {

	global $product, $post ;

	// Entrez une liste séparée par des virgules d'ID de produits qui doivent afficher les variations sous forme de tableau. Laisser vide pour afficher tous les produits ( e.g array() )
	$produits = array( ) ;

	if ( in_array( $post-&gt;ID, $products ) || empty( $products ) ) ) {

		$variations = find_valid_variations() ;

		// Vérifier si la méta spéciale 'price_grid' est définie, si c'est le cas, charger le modèle par défaut.
		if ( get_post_meta( $post-&gt;ID, 'price_grid', true ) ) {

			// Enqueue des scripts de variation.
			wp_enqueue_script( 'wc-add-to-cart-variation' ) ;

			// Chargement du modèle
			wc_get_template(
				'single-product/add-to-cart/variable.php',
				array(
					'available_variations' =&gt; $product-&gt;get_available_variations(),
					'attributs' =&gt; $product-&gt;get_variation_attributes(),
					'selected_attributes' =&gt; $product-&gt;get_variation_default_attributes(),
				)
			) ;

			retour ;
		}
		// Cool, faisons notre propre modèle !
		?&gt;
			<table class="variations variations-grid" cellspacing="0">
				<tbody>

			<?php
			$variation = 0;
			foreach ( $variations as $key => $value ) {
				if ( ! $value['variation_is_visible'] ) {
					continue;
				}
				if ( $variation != $value['variation_id'] ) {

					?>

					<tr>
						<td>
						<?php

						foreach ( $value['attributes'] as $key => $val ) {
							$val = str_replace( array( '-', '_' ), ' ', $val );
							printf( '<div class="attr attr-%s">%s</div>', $key, ucwords( $val ) );
						}
						?>
						</td>
						<td>
						<?php echo $value['price_html']; ?>
						</td>

						<?php if ( $value['is_in_stock'] ) { ?>
							<form class="cart"  action="/fr//" method="post" enctype='multipart/form-data' data-trp-original-action="<?php echo esc_url( $product->add_to_cart_url() ); ?>">
								<td id="variation_<?php echo $value['variation_id']; ?>">
									
										<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-wp-preserve="%3Cscript%3E%0A%09%09%09%09%09%09%09%09%09%09jQuery(document).ready(function(%24)%7B%0A%09%09%09%09%09%09%09%09%09%09%09%24(%20%22%23variation_%3C%3Fphp%20echo%20%24value%5B'variation_id'%5D%3B%20%3F%3E%20.qty%22%20).attr(%20%22step%22%2C%20%3C%3Fphp%20echo%20%24variation_group_of_quantity%3B%20%3F%3E%20)%3B%0A%09%09%09%09%09%09%09%09%09%09%09%24(%20%22%23variation_%3C%3Fphp%20echo%20%24value%5B'variation_id'%5D%3B%20%3F%3E%20.qty%22%20).attr(%20%22value%22%2C%20%3C%3Fphp%20echo%20%24variation_group_of_quantity%3B%20%3F%3E%20)%3B%0A%09%09%09%09%09%09%09%09%09%09%09%24(%20%22%23variation_%3C%3Fphp%20echo%20%24value%5B'variation_id'%5D%3B%20%3F%3E%20.qty%22%20).attr(%20%22min%22%2C%20%3C%3Fphp%20echo%20%24variation_minimum_quantity%3B%20%3F%3E%20)%3B%0A%09%09%09%09%09%09%09%09%09%09%09%24(%20%22%23variation_%3C%3Fphp%20echo%20%24value%5B'variation_id'%5D%3B%20%3F%3E%20.qty%22%20).attr(%20%22max%22%2C%20%3C%3Fphp%20echo%20%24variation_maximum_quantity%3B%20%3F%3E%20)%3B%0A%09%09%09%09%09%09%09%09%09%09%7D)%3B%0A%09%09%09%09%09%09%09%09%09%09%3C%2Fscript%3E" data-mce-resize="false" data-mce-placeholder="1" class="mce-object" width="20" height="20" alt="&lt;script&gt;" title="&lt;script&gt;" />									
									<?php } ?>
								</td>
								<td>
									<?php
									if ( ! empty( $value['attributes'] ) ) {
										foreach ( $value['attributes'] as $attr_key => $attr_value ) {
											?>
											<input type="hidden" name="<?php echo $attr_key; ?>" value="<?php echo $attr_value; ?>">
											<?php
										}
									}
									?>
									<button type="submit" class="single_add_to_cart_button btn btn-primary"><span class="glyphicon glyphicon-tag"></span> Ajouter au panier</button>
								</td>
								<input type="hidden" name="variation_id" value="<?php echo $value['variation_id']; ?>" />
								<input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
								<input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $post->ID ); ?>" />
							<input type="hidden" name="trp-form-language" value="fr"/></form>
							<?php } else { ?>
								<td colspan="2">
									<p class="stock out-of-stock"><?php _e( 'This item is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
								</td>
							<?php } ?>
					</tr>
					<?php
					$variation = $value['variation_id'];
				}
			}
			?>
			</tbody>
			</table>


		<?php
	} else {

		// Enqueue variation scripts.
		wp_enqueue_script( 'wc-add-to-cart-variation' );

		// Load the template
		wc_get_template(
			'single-product/add-to-cart/variable.php',
			array(
				'available_variations' => $product-&gt;get_available_variations(),
				'attributes' =&gt; $product-&gt;get_variation_attributes(),
				'selected_attributes' =&gt; $product-&gt;get_variation_default_attributes(),
			)
		) ;
		retour ;
	}
}

function find_valid_variations() {
	global $product, $post ;

		$variations = $product-&gt;get_available_variations() ;
		$attributes = $product-&gt;get_attributes() ;
		$new_variants = array() ;

		// Boucle sur toutes les variantes
	foreach ( $variations as $variation ) {

		// Examinez les attributs.

		// Si les deux sont explicitement définis, il s'agit d'une variation valide.
		// 2. si l'un d'entre eux n'est pas défini, cela signifie qu'il n'y en a pas et que nous devons "créer" les autres.

		$valid = true ; // jusqu'à présent
		foreach ( $attributes as $slug =&gt; $args ) {
			if ( array_key_exists("attribute_$slug", $variation['attributes'] ) &amp;&amp; ! empty( $variation['attributes'][ "attribute_$slug" ] ) ) {
				// Existe

			} else {
				// N'existe pas, créer
				$valid = false ; // il contient des "anys
				// parcourt en boucle toutes les options de l'attribut "ANY" et ajoute chacune d'entre elles
				foreach ( explode( '|', $attributes[ $slug ]['value'] ) as $attribute ) {
					$attribute = trim( $attribute ) ;
					$new_variant = $variation ;
					$new_variant['attributes'][ "attribute_$slug" ] = $attribute ;
					$new_variants[] = $new_variant ;
				}
			}
		}

		// Elle contient TOUS les attributs définis et est elle-même une variante "valide".
		if ( $valid ) {

			$new_variants[] = $variation ;
		}
	}

		return $new_variants ;
}
[/php]

Ajoutez la prise en charge des heures de début et de fin quotidiennes à vos thèmes de tickets. #

A partir de la version 1.5.5 de la FooEvents Plusieurs jours vous pouvez sélectionner des heures de début et de fin différentes pour chaque jour de la semaine. événement de plusieurs jours. La prise en charge de cette fonctionnalité a également été ajoutée à tous les systèmes d'information de la Commission européenne. FooEvents Thèmes des billets. S'il vous plaît suivre les instructions suivantes pour mettre à jour un thème de billet existant. Si vous utilisez un thème de billet personnalisé et que vous ne pouvez pas le remplacer par la version mise à jour, veuillez ajouter l'extrait de code suivant à votre thème de billet afin d'ajouter la prise en charge des heures de début et de fin. [php]

<!-- MULTI-DAY DETAILS -->
										

			<strong><?php printf( __( '%1$s %2$d: ', 'woocommerce-events' ), $ticket['dayTerm'], $x ); ?></strong>
			<?php echo esc_attr( $date ); ?><br /> 
				
		<br />										
		

Les boutons WooCommerce Ajouter au panier affichés par défaut sur les pages de présentation des boutiques ajoutent automatiquement un produit au panier et redirigent l'utilisateur vers la page du panier. Si vous utilisez les réservations FooEvents, vous préférerez peut-être faire passer l'utilisateur par la page du produit afin qu'il puisse d'abord choisir un créneau et une heure de réservation avant de passer à la page du panier. L'extrait suivant remplacera le lien "ajouter au panier" par un lien vers la page du produit. Ainsi, l'utilisateur pourra effectuer la réservation appropriée sur la page du produit avant de passer à la page du panier ou de la caisse.

/**
* @snippet Change WooCommerce 'Add to Cart' button to 'View Product'
* @source https://www.wptechnic.com/?p=4615
* @author Muhammad Tamzid
* @compatible WC 4.3.1
*/
// Remplacer le bouton WooCommerce 'Ajouter au panier' par 'Voir le produit'
add_filter('woocommerce_loop_add_to_cart_link', 'wpt_custom_view_product_button', 10, 2 ) ;
function wpt_custom_view_product_button( $button, $product ) {
    // Ignorer les produits variables
    if ( $product-&gt;is_type( 'variable' ) ) {
        return $button ;
    }
    // Texte du bouton ici
    $button_text = __('Book Ticket', 'woocommerce' ) ;
    return '<a class="button wpt-custom-view-product-button" href="/fr/' . $product->get_permalink() . '/">' . $button_text . '</a>';
}

Afficher la date de l'événement pour les événements "uniques" dans le panier et sur la page de paiement #

add_filter('woocommerce_cart_item_name', 'add_event_date_cart_checkout', 10, 3 ) ;
function add_event_date_cart_checkout( $product_name, $cart_item, $cart_item_key ) {
	$product = $cart_item['data'] ;

	if ( $value = $product->get_meta( 'WooCommerceEventsDate' ) ) {
		$product_name .= '' . $value . '' ;
	}
	return $product_name ;
}

Articles

Étiquettes , , , , , , , , , , , , , , , , , , ,