Argomenti

⌘K
  1. Argomenti
  2. Snippet di codice

Snippet di codice

Questo è un A livello di sviluppatore documento. Se non si ha dimestichezza con il codice/template e la risoluzione di potenziali conflitti, si consiglia di rivolgersi a uno sviluppatore che abbia familiarità con l'FooEvents e/o l'WooCommerce.

Importante, leggere prima #

Questi snippet sono forniti a titolo di cortesia e non fanno parte dell'offerta di prodotti FooEvents. Sono considerati personalizzazioni e non sono ufficialmente supportati da FooEvents. Di conseguenza, non forniamo supporto per gli snippet e le personalizzazioni, come previsto dalla nostra Termini di servizio. Utilizzare a proprio rischio e pericolo.

Completare automaticamente gli ordini #

Questo permette di inviare automaticamente i biglietti una volta ricevuto il pagamento, invece di dover completare manualmente l'ordine. Assicuratevi che i prodotti dell'evento siano impostati su "Virtuale" e "Scaricabile", come spiegato nel nostro documentazione di aiutoaltrimenti, l'ordine non completare automaticamente anche se il pagamento è stato effettuato.

Aggiungere il seguente codice al tema figlio functions.php o tramite un plugin che permetta di aggiungere funzioni personalizzate, come il file Snippet di codice plugin. Evitare di aggiungere codice personalizzato direttamente al tema padre functions.php perché verrà sovrascritto quando si aggiorna il tema.

Si può anche cambiare lo stato "Completato" con un altro stato dell'ordine, ad esempio "In elaborazione".

/**
 * Completa automaticamente tutti gli ordini 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' );
}

Mostra il nome e l'email del partecipante nell'email di amministrazione del Nuovo Ordine #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php file. È possibile cambiare l'email in cui viene visualizzato il file utilizzando un'email diversa. gancio.

.

[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>Dettagli sui partecipanti</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Nome</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Cognome</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>Indirizzo e-mail</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            echo "</p>";
        }
    }
}

Mostra tutti i campi personalizzati dei partecipanti senza etichette nell'e-mail di amministrazione del nuovo ordine #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php file. È possibile cambiare l'email in cui viene visualizzato il file utilizzando un'email diversa. gancio.

.

[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>Dettagli sui partecipanti</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Nome</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Cognome</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>Indirizzo e-mail</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            foreach ($ticket['WooCommerceEventsCustomAttendeeFields'] as $caf) {
                 echo $caf.'<br />';
            }
            echo "</p>";
        }
    }
}

Mostra i campi personalizzati dei partecipanti con le etichette nell'e-mail di amministrazione del Nuovo Ordine #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php file. È possibile cambiare l'email in cui viene visualizzato il file utilizzando un'email diversa. gancio. Assicurarsi di sostituire "ovsxtmynwagotamjqieq" e "ruzwhgbuhzuzzdwnnaxe" nel codice di esempio con il codice del campo personalizzato del partecipante. Potete trovare queste informazioni se modificate un biglietto e cercate ogni campo personalizzato del partecipante nella sezione "Campi personalizzati". È necessario aggiungere ogni campo personalizzato del partecipante e la sua etichetta individualmente.

.

[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>Dettagli sui partecipanti</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Nome</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Cognome</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>Indirizzo e-mail</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            echo '<strong>Compleanno</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ovsxtmynwagotamjqieq'].'<br />';
            echo '<strong>Canzone preferita</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ruzwhgbuhzuzzdwnnaxe'].'<br />';
            echo "</p>";
        }
    }
}

Visualizzare l'ora di inizio dell'evento nell'elenco degli eventi #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php file. Per creare uno stile di visualizzazione dell'ora, aggiungere il CSS per la classe 'fooevents-date'.

Cambiate la posizione dell'ora utilizzando un'altra gancio.

.

[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]

Visualizzare i partecipanti registrati in una tabella #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php per visualizzare tutti i partecipanti registrati all'evento in una tabella a griglia. Dopo aver aggiunto lo snippet di codice, è possibile utilizzare lo shortcode in questo modo:

[fooevents_attendees]

per visualizzare tutti i partecipanti a tutti gli eventi, oppure in questo modo:

[fooevents_attendees product_id=123]

dove "123" è l'ID dell'evento per il quale si desidera visualizzare l'elenco dei partecipanti.

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() ) : $he_query-&gt;the_post();
    $postid = $the_query-&gt;post-&gt;ID;
     
      // produrre tutti i risultati - PERSONALIZZARE A PROPRIO PIACERE
      $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>".$output".</table>";
  restituire $output;
   
}
add_shortcode("fooevents_attendees", "fooevents_display_attendees");
[/php]

Visualizzare la data dell'evento prima del titolo nella pagina del prodotto #

Cambiate la posizione della data utilizzando un'altra gancio.

.

[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' );
  se ( $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' );

Se si desidera rendere disponibile la data dell'evento come shortcode, è possibile aggiungere la seguente riga sotto la funzione:

add_shortcode( 'fooevents_date_on_single', 'fooevents_display_date_on_single');

Quindi è possibile utilizzare lo shortcode [fooevents_date_on_single] per visualizzare la data dell'evento nella pagina.

Sostituire l'icona del posto a sedere sulla tabella dei posti con un'immagine diversa. #

Modificare il seguente frammento di codice CSS aggiungendo l'URL di un'immagine diversa che si desidera sostituire a quella predefinita per tutti i posti a sedere. Aggiungere il frammento di codice modificato al file CSS personalizzato del tema.

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

Rimuovete l'icona del posto a sedere sulla tabella dei posti a sedere in modo che i posti vengano visualizzati come scatole #

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

Modificare la direzione dei numeri dei posti a sedere sulla tabella dei posti a sedere #

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

Mostra i posti dispari a destra e quelli pari a sinistra. #

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

Visualizzare i posti al centro della tabella dei posti a sedere #

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

Lasciare che la tabella dei posti a sedere scorra orizzontalmente invece di visualizzare i posti nella fila successiva #

Questo può essere utile se si hanno molti posti per fila e si vuole che vengano visualizzati uno accanto all'altro invece che sulla fila successiva, se non si adattano a una riga.

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

Mostrare una griglia di calendario su desktop e un elenco di settimane di calendario su mobile #

Aggiungete due shortcode di calendario nella pagina o nel post in cui volete visualizzare il calendario. Il primo shortcode visualizzerà una griglia di calendari e dovrebbe avere questo aspetto:

[fooevents_calendar id="desktop"]

Il secondo shortcode visualizzerà un elenco di settimane del calendario e dovrebbe avere questo aspetto:

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

Aggiungere il seguente frammento di codice CSS al file CSS personalizzato del tema. Assicurarsi che il valore del selettore CSS ID sia uguale al valore dell'attributo "id" specificato nel codice breve. È possibile regolare la proprietà "max-width" in base alla dimensione dello schermo in cui si desidera che l'elenco delle settimane del calendario sia visualizzato e la griglia del calendario sia nascosta.

#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;
  }    
}

Modificare la posizione dell'icona Copia dei dettagli dell'acquirente #

Lo snippet seguente allinea il pulsante di copia a destra dell'etichetta del nome:

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

Se non si utilizzano etichette, ma segnaposti di input, utilizzare il seguente frammento di codice:

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

Mostrare la scheda "Dettagli evento" per prima nella pagina dell'evento #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php file.

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

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

}

Indirizzare tutti i pulsanti "Aggiungi al carrello" alle pagine dei prodotti #

Se un prodotto è un prodotto semplice, per impostazione predefinita, il pulsante "Aggiungi al carrello" aggiungerà automaticamente un prodotto al carrello del cliente. Se si utilizza l'estensione FooEvents Bookings, è possibile che i clienti debbano prima accedere alla pagina del prodotto per selezionare la data e la fascia oraria della prenotazione. Lo snippet seguente assicura che quando si fa clic sul pulsante 'Aggiungi al carrello' per i prodotti semplici, l'utente venga indirizzato alla pagina del prodotto.

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 ) {
    se (is_product_category() || is_shop()) {
        $button_text = $product-&gt;add_to_cart_text();
        $button_link = $product-&gt;get_permalink();
        $button = '<a class="button" href="/it/' . $button_link . '/">' . $button_text . '</a>';
        restituire $button;
    }
}

Visualizza FREE se il prezzo dell'evento è impostato su zero (0) #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php se si desidera cambiare gli eventi e i prodotti con un prezzo di "0" in "GRATIS". È anche possibile sostituire la parola "GRATIS" con un'altra parola o frase o lasciarla vuota se non si desidera visualizzare nulla.

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;
}

Visualizzare i prodotti e le varianti (biglietti) in una tabella a griglia #

Aggiungete il seguente frammento di codice alla cartella del vostro tema functions.php per visualizzare i prodotti e le varianti in una tabella a griglia nella pagina dell'evento/prodotto, invece dell'elenco a discesa predefinito. Ogni opzione di biglietto sarà elencata in una nuova riga e avrà il proprio selettore di quantità.

Si prega di notare: Questo frammento di codice non è compatibile con l'applicazione FooEvents Posti a sedere e FooEvents Prenotazioni selettori della pagina del prodotto.

selettori della pagina del prodotto.

[php]
/**
 * Visualizza le variazioni in una tabella.
 */

function woocommerce_variable_add_to_cart() {

	global $product, $post;

	// Inserire un elenco separato da virgole di ID di prodotti che devono visualizzare le variazioni in formato tabella. Lasciare vuoto per visualizzare tutti i prodotti (ad es. array())
	$products = array( );

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

		$variations = find_valid_variations();

		// Controllare se il meta speciale 'price_grid' è impostato; se lo è, caricare il template predefinito.
		if ( get_post_meta( $post-&gt;ID, 'price_grid', true ) ) {

			// Richiamare gli script di variazione.
			wp_enqueue_script( 'wc-add-to-cart-variation' );

			// Caricare il modello
			wc_get_template(
				'single-product/add-to-cart/variable.php',
				array(
					'available_variations' =&gt; $product-&gt;get_available_variations(),
					'attributes' =&gt; $product-&gt;get_variation_attributes(),
					'selected_attributes' =&gt; $product-&gt;get_variation_default_attributes(),
				)
			);

			return;
		}
		// Bene, facciamo il nostro template!
		?&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="/it//?php%20echo%20esc_url(%20$product-add_to_cart_url()%20);%20?" 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> Aggiungi al carrello</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="it"/></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(),
			)
		);
		return;
	}
}

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

		$variations = $product-&gt;get_available_variations();
		$attributi = $product-&gt;get_attributi();
		$new_variants = array();

		// Eseguire il ciclo di tutte le varianti
	foreach ( $variations as $variation ) {

		// Esamina gli attributi.

		// 1. Se entrambi sono esplicitamente impostati, si tratta di una variazione valida.
		// 2. Se uno non è impostato, significa che non c'è e che dobbiamo "creare" gli altri.

		$valid = true; // fino a questo punto
		foreach ( $attributes as $slug =&gt; $args ) {
			if ( array_key_exists( "attribute_$slug", $variation['attributes'] ) &amp;&amp; ! empty( $variation['attributes'][ "attribute_$slug" ] ) {
				// Esiste

			} else {
				// Non esiste, creare
				$valid = false; // contiene 'any'
				// scorrere tutte le opzioni per l'attributo 'ANY' e aggiungere ognuna di esse
				foreach ( explode( '|', $attributes[ $slug ]['value'] ) as $attribute ) {
					$attributo = trim( $attributo );
					$new_variant = $variation;
					$new_variant['attributes'][ "attribute_$slug" ] = $attribute;
					$new_variants[] = $new_variant;
				}
			}
		}

		// Questo contiene TUTTI gli attributi impostati ed è esso stesso una variante "valida".
		if ( $valid ) {

			$new_variants[] = $variation;
		}
	}

		restituire $new_variants;
}
[/php]

Aggiungere ai temi dei biglietti il supporto per gli orari di inizio e fine giornalieri #

A partire dalla versione 1.5.5 del FooEvents Multigiornaliero è possibile selezionare orari di inizio e fine diversi per ciascun giorno di un evento di più giorni. Il supporto per questa funzione è stato aggiunto anche a tutti i FooEvents Temi dei biglietti. Per favore seguire queste istruzioni per aggiornare un tema di ticket esistente. Se si utilizza un tema di ticket personalizzato e non si è in grado di sostituirlo con la versione aggiornata, aggiungere il seguente frammento di codice al tema di ticket per aggiungere il supporto per gli orari di inizio e fine. [php]

<!-- MULTI-DAY DETAILS -->
										

			<strong><?php printf( __( '%1$s %2$d: ', 'woocommerce-events' ), $ticket['dayTerm'], $x ); ?></strong>
			<?php echo esc_attr( $date ); ?><br /> 
			&lt;?php if ( ! empty( $ticket[&#039;WooCommerceEventsSelectDateHour&#039;][ $y ] ) &amp;&amp; ! empty( $ticket[&#039;WooCommerceEventsSelectDateMinutes&#039;][ $y ] ) : ?
				&lt;?php echo( isset( $ticket[&#039;WooCommerceEventsSelectDatePeriod&#039;][ $y ] ) ) ? &#039; &#039; . $ticket[&#039;WooCommerceEventsSelectDatePeriod&#039;][ $y ] : &#039;&#039;; ?
			
			
				&lt;?php echo( isset( $ticket[&#039;WooCommerceEventsSelectDatePeriodEnd&#039;][ $y ] ) ) ? &#039; &#039; . $ticket[&#039;WooCommerceEventsSelectDatePeriodEnd&#039;][ $y ] : &#039;&#039;; ?	
		<br />										
		

I pulsanti predefiniti WooCommerce Aggiungi al carrello visualizzati sulle pagine degli elenchi dei negozi aggiungono automaticamente un prodotto al carrello e reindirizzano alla pagina del carrello. Quando si utilizzano le prenotazioni FooEvents, si potrebbe preferire incanalare l'utente attraverso la pagina del prodotto, in modo che possa prima effettuare una selezione di slot e orari di prenotazione prima di procedere alla pagina del carrello. Lo snippet seguente sostituisce il link al carrello con un link alla pagina del prodotto. In questo modo l'utente potrà effettuare la selezione di prenotazione appropriata nella pagina del prodotto prima di procedere al carrello o alla pagina di checkout.

/**
* @snippet Cambia il pulsante WooCommerce 'Aggiungi al carrello' in 'Visualizza prodotto'.
* @source https://www.wptechnic.com/?p=4615
* @autore Muhammad Tamzid
* @compatibile WC 4.3.1
*/
// Cambiare il pulsante WooCommerce "Aggiungi al carrello" in "Visualizza prodotto".
add_filter( 'woocommerce_loop_add_to_cart_link', 'wpt_custom_view_product_button', 10, 2 );
function wpt_custom_view_product_button( $button, $product ) {
    // Ignora i prodotti variabili
    if ( $product-&gt;is_type( 'variable' ) ) {
        return $button;
    }
    // Testo del pulsante qui
    $button_text = __( 'Book Ticket', 'woocommerce' );
    return '<a class="button wpt-custom-view-product-button" href="/it/' . $product->get_permalink() . '/">' . $button_text . '</a>';
}

Visualizzare la data dell'evento per gli eventi "singoli" nel carrello e nella pagina di checkout #

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;
}

Articoli

Tag , , , , , , , , , , , , , , , , , , ,