Témata

⌘K
  1. Témata
  2. Úryvky kódu

Úryvky kódu

Jedná se o Na úrovni vývojářů dokument. Pokud nejste obeznámeni s kódem/šablonami a řešením potenciálních konfliktů, obraťte se na vývojáře, který je obeznámen s FooEvents a/nebo WooCommerce.

Důležité, nejprve si přečtěte #

Tyto úryvky jsou poskytovány jako laskavost a nejsou součástí nabídky produktů FooEvents. Jsou považovány za úpravy a nejsou oficiálně podporovány společností FooEvents. Z tohoto důvodu neposkytujeme podporu pro fragmenty a úpravy podle našich pravidel. Podmínky služby. Používáte na vlastní nebezpečí.

Automatické dokončování objednávek #

To umožňuje automatické odeslání letenek po přijetí platby namísto ručního dokončování objednávky. Ujistěte se, že jsou produkty události nastaveny na "Virtuální" a "Ke stažení na", jak je vysvětleno v našem dokumentace nápovědy, v opačném případě se pořadí nebude dokončit automaticky, i když byla provedena platba.

Přidejte následující kód vašeho podřízeného tématu functions.php nebo prostřednictvím zásuvného modulu, který umožňuje přidání vlastních funkcí, jako je např. Úryvky kódu plugin. Vyhněte se přidávání vlastního kódu přímo do nadřazeného tématu. functions.php protože při aktualizaci tématu bude přepsán.

Stav "Dokončeno" můžete také změnit na jiný stav objednávky, například "Zpracovává se".

/**
 * Automatické dokončení všech objednávek 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" );
}

Zobrazení jména a e-mailu účastníka v e-mailu správce nové objednávky #

Přidejte následující úryvek kódu do tématu. functions.php soubor. E-mail, který se zobrazí, můžete změnit pomocí jiného e-mailu. háček.

.

[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>Podrobnosti o účastnících</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Jméno</strong>: ".$ticket['WooCommerceEventsAttendeeName'].<br />';
            echo '<strong>Příjmení</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].<br />';
            echo '<strong>E-mailová adresa</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].<br />';
            echo "</p>";
        }
    }
}

Zobrazení všech vlastních polí pro účastníky bez štítků v e-mailu správce nové objednávky #

Přidejte následující úryvek kódu do tématu. functions.php soubor. E-mail, který se zobrazí, můžete změnit pomocí jiného e-mailu. háček.

.

[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>Podrobnosti o účastnících</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Jméno</strong>: ".$ticket['WooCommerceEventsAttendeeName'].<br />';
            echo '<strong>Příjmení</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].<br />';
            echo '<strong>E-mailová adresa</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].<br />';
            foreach ($ticket['WooCommerceEventsCustomAttendeeFields'] as $caf) {
                 echo $caf.'<br />';
            }
            echo "</p>";
        }
    }
}

Zobrazení vlastních polí pro účastníky se štítky v e-mailu správce nové objednávky #

Přidejte následující úryvek kódu do tématu. functions.php soubor. E-mail, který se zobrazí, můžete změnit pomocí jiného e-mailu. háček. Nezapomeňte nahradit "ovsxtmynwagotamjqieq" a "ruzwhgbuhzuzzdwnnaxe" v ukázkovém kódu svým vlastním kódem pole účastníka. Tyto informace najdete, pokud upravíte tip a vyhledáte jednotlivá vlastní pole účastníka v části "Vlastní pole". Každé vlastní pole účastníka a jeho popisek byste museli přidat jednotlivě.

.

[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>Podrobnosti o účastnících</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Jméno</strong>: ".$ticket['WooCommerceEventsAttendeeName'].<br />';
            echo '<strong>Příjmení</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].<br />';
            echo '<strong>E-mailová adresa</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].<br />';
            echo '<strong>Narozeniny</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ovsxtmynwagotamjqieq'].<br />';
            echo '<strong>Oblíbená píseň</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ruzwhgbuhzuzzdwnnaxe'].<br />';
            echo "</p>";
        }
    }
}

Zobrazení času začátku události v seznamu událostí #

Přidejte následující úryvek kódu do tématu. functions.php soubor. Stylujte zobrazení času přidáním CSS pro třídu 'fooevents-date'.

Změnit umístění času pomocí jiného háček.

.

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

Zobrazení registrovaných účastníků ve formátu tabulky #

Přidejte následující úryvek kódu do tématu. functions.php vypsat všechny registrované účastníky události ve formátu tabulkové mřížky. Po přidání úryvku kódu můžete zkrácený kód použít takto:

[fooevents_attendees]

zobrazit všechny účastníky všech událostí, nebo takto:

[fooevents_attendees product_id=123]

kde "123" je ID události, pro kterou chcete zobrazit seznam účastníků.

funkce 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;
     
      // vypsat všechna zjištění - PŘIZPŮSOBTE SI DLE SVÝCH PŘEDSTAV
      $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>";
  return $output;
   
}
add_shortcode("fooevents_attendees", "fooevents_display_attendees");
[/php]

Zobrazení data události před názvem na stránce produktu #

Změňte umístění data pomocí jiného symbolu. háček.

.

[php]
funkce 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' );

Pokud chcete datum události zpřístupnit jako zkrácený kód, můžete pod funkci přidat následující řádek:

add_shortcode( 'fooevents_date_on_single', 'fooevents_display_date_on_single');

Pak můžete použít zkrácený kód [fooevents_date_on_single] zobrazit na stránce datum události.

Nahrazení ikony sedadla v tabulce míst jiným obrázkem. #

Upravte následující úryvek kódu CSS přidáním adresy URL jiného obrázku, kterým chcete nahradit výchozí obrázek sedadla pro všechna sedadla. Přidejte upravený úryvek kódu do vlastního souboru CSS vašeho tématu.

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

Odstranění ikony sedadla v tabulce sedadel, aby se sedadla zobrazovala jako boxy. #

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

Změna směru číslování sedadel v zasedacím pořádku #

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

Zobrazte lichá sedadla vpravo a sudá sedadla vlevo. #

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

Zobrazení sedadel uprostřed zasedacího pořádku #

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

Nechat zasedací pořádek rolovat vodorovně namísto zobrazení sedadel v další řadě. #

To by mohlo být užitečné, pokud máte mnoho sedadel v jedné řadě a chcete je zobrazit vedle sebe, nikoli v další řadě, pokud se nevejdou na jeden řádek.

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

Zobrazení mřížky kalendáře na stolních počítačích a seznamu kalendářních týdnů na mobilních zařízeních #

Přidejte dva zkratky kalendáře na stránku nebo příspěvek, kde chcete zobrazit kalendář. První zkratka zobrazí mřížku kalendáře a měla by vypadat takto:

[fooevents_calendar id="desktop"]

Druhý zkratkový kód zobrazí seznam kalendářních týdnů a měl by vypadat takto:

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

Do vlastního souboru CSS vašeho motivu přidejte následující úryvek kódu CSS. Ujistěte se, že hodnota selektoru CSS ID je stejná jako hodnota atributu "id", kterou jste zadali v krátkém kódu. Vlastnost "max-width" můžete upravit podle velikosti obrazovky, na které se má zobrazit seznam týdnů kalendáře a mřížka kalendáře má být skrytá.

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

Změna polohy ikony Kopírovat údaje o kupujícím #

Následující úryvek zarovná tlačítko kopírování napravo od štítku s prvním jménem:

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

Pokud nepoužíváte štítky, ale spíše zástupné znaky, použijte následující úryvek kódu:

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

Zobrazení karty "Podrobnosti o události" na stránce události jako první. #

Přidejte následující úryvek kódu do tématu. functions.php soubor.

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

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

}

Přesměrování všech tlačítek "Přidat do košíku" na stránky produktu #

Pokud se jedná o jednoduchý produkt, tlačítko "Přidat do košíku" ve výchozím nastavení automaticky přidá produkt do košíku zákazníka. Při použití rozšíření FooEvents Rezervace můžete požadovat, aby zákazníci nejprve přešli na stránku produktu a vybrali datum a čas rezervace. Následující úryvek zajistí, že po kliknutí na tlačítko "Přidat do košíku" u jednoduchých produktů bude uživatel přesměrován na stránku produktu.

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="/cs/' . $button_link . '/">' . $button_text . '</a>';
        return $button;
    }
}

Zobrazení FREE, pokud je cena události nastavena na nulu (0) #

Přidejte následující úryvek kódu do tématu. functions.php pokud chcete změnit události a produkty s cenou "0" na "ZDARMA". Slovo "ZDARMA" můžete také nahradit jiným slovem nebo frází nebo jej nechat prázdné, pokud nechcete, aby se nic zobrazovalo.

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

Zobrazení produktů a variant (vstupenek) ve formátu tabulky s mřížkou #

Přidejte následující úryvek kódu do tématu. functions.php aby se produkty a varianty na stránce události/produktu zobrazovaly ve formátu tabulky s mřížkou namísto výchozího rozevíracího seznamu. Každá varianta vstupenky bude uvedena v novém řádku a bude mít vlastní výběr množství.

Upozornění: Tento úryvek kódu není kompatibilní se systémem FooEvents Sedadla a FooEvents Rezervace výběry na stránce produktu.

výběry na stránce produktu.

[php]
/**
 * Zobrazení variant ve formátu tabulky.
 */

funkce woocommerce_variable_add_to_cart() {

	global $product, $post;

	// Zadejte čárkou oddělený seznam ID produktů, které mají zobrazovat variace ve formátu tabulky. Pro zobrazení všech produktů nechte prázdné ( např. array() ).
	$products = array( );

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

		$variations = find_valid_variations();

		// Zkontrolujte, zda je nastavena speciální meta 'price_grid', pokud ano, načtěte výchozí šablonu.
		if ( get_post_meta( $post-&gt;ID, 'price_grid', true ) ) {

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

			// Načtení šablony
			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;
		}
		// Super, uděláme si vlastní šablonu!
		?&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="/cs//" 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> Přidat do košíku</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="cs"/></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;
	}
}

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

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

		// Projděte ve smyčce všechny varianty
	foreach ( $variations as $variation ) {

		// Projděte atributy.

		// 1. Pokud jsou oba explicitně nastaveny, jedná se o platnou variantu.
		// 2. Pokud jeden není nastaven, znamená to, že žádný a ostatní musíme "vytvořit".

		$valid = true; // zatím
		foreach ( $attributes as $slug =&gt; $args ) {
			if ( array_key_exists( "attribute_$slug", $variation['attributes'] ) &amp;&amp; ! empty( $variation['attributes'][ "attribute_$slug" ] ) {
				// Existuje

			} else {
				// Neexistuje, vytvořit
				$valid = false; // obsahuje 'anys'
				// projděte ve smyčce všechny možnosti atributu "ANY" a přidejte každou z nich
				foreach ( explode( '|', $attributes[ $slug ]['value'] ) as $attribute ) {
					$attribute = trim( $attribute );
					$new_variant = $variation;
					$new_variant['attributes'][ "attribute_$slug" ] = $attribute;
					$new_variants[] = $new_variant;
				}
			}
		}

		// Obsahuje VŠECHNY nastavené atributy a sama o sobě je "platnou" variantou.
		if ( $valid ) {

			$new_variants[] = $variation;
		}
	}

		return $new_variants;
}
[/php]

Přidání podpory pro denní časy začátku a konce do témat tipů #

Od verze 1.5.5 o FooEvents Vícedenní můžete vybrat různé časy začátku a konce pro každý den. vícedenní akce. Podpora této funkce byla také přidána do všech FooEvents Motivy vstupenek. Prosím, postupujte podle těchto pokynů aktualizovat stávající téma tipu. Pokud používáte vlastní motiv tipu a nemůžete ho nahradit aktualizovanou verzí, přidejte do motivu tipu následující úryvek kódu, abyste přidali podporu pro časy začátku a konce. [php]

<!-- MULTI-DAY DETAILS -->
										

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

Výchozí tlačítka WooCommerce Přidat do košíku zobrazená na stránkách výpisu obchodu automaticky přidají produkt do košíku a přesměrují na stránku košíku. Při použití FooEvents Rezervace můžete raději uživatele nasměrovat přes stránku produktu, aby mohl nejprve provést výběr slotu a času rezervace a teprve poté přejít na stránku košíku. Následující úryvek nahradí odkaz na přidání do košíku odkazem na stránku produktu. Tím se zajistí, že uživatel bude moci provést příslušný výběr rezervace na stránce produktu, než přejde na stránku košíku nebo pokladny.

/**
* @snippet Změnit tlačítko WooCommerce 'Přidat do košíku' na 'Zobrazit produkt'
* @source https://www.wptechnic.com/?p=4615
* @autor Muhammad Tamzid
* @compatible WC 4.3.1
*/
// Změna tlačítka WooCommerce "Přidat do košíku" na "Zobrazit produkt
add_filter( 'woocommerce_loop_add_to_cart_link', 'wpt_custom_view_product_button', 10, 2 );
function wpt_custom_view_product_button( $button, $product ) {
    // Ignorovat u proměnných produktů
    if ( $product-&gt;is_type( 'variable' ) ) {
        return $button;
    }
    // Text tlačítka zde
    $button_text = __( 'Book Ticket', 'woocommerce' );
    return '<a class="button wpt-custom-view-product-button" href="/cs/' . $product->get_permalink() . '/">' . $button_text . '</a>';
}

Zobrazení data události pro "jednotlivé" události v košíku a na stránce Pokladna #

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

Články

Štítky , , , , , , , , , , , , , , , , , , ,