Themen

⌘K
  1. Themen
  2. Code-Schnipsel

Code-Schnipsel

Dies ist eine Entwicklerebene Dokument. Wenn Sie mit Code/Vorlagen und der Lösung möglicher Konflikte nicht vertraut sind, wenden Sie sich bitte an einen Entwickler, der mit FooEvents und/oder WooCommerce vertraut ist.

Wichtig, bitte zuerst lesen #

Diese Snippets werden aus Höflichkeit zur Verfügung gestellt und sind nicht Teil des FooEvents-Produktangebots. Sie gelten als Anpassungen und werden nicht offiziell von FooEvents unterstützt. Daher bieten wir keinen Support für Snippets und Anpassungen im Sinne unserer Bedingungen der Dienstleistung. Die Verwendung erfolgt auf eigene Gefahr.

Automatisch Aufträge abschließen #

Auf diese Weise werden die Tickets automatisch nach Zahlungseingang verschickt, ohne dass Sie die Bestellung manuell abschließen müssen. Bitte stellen Sie sicher, dass Ihre Veranstaltungsprodukte auf "Virtuell" und "Herunterladbar", wie in unserer Hilfe-Dokumentationansonsten wird der Auftrag wird nicht automatisch abgeschlossen, auch wenn die Zahlung erfolgt ist.

Fügen Sie den folgenden Code in Ihr Child-Theme ein funktionen.php Datei oder über ein Plugin, das das Hinzufügen von benutzerdefinierten Funktionen ermöglicht, wie z. B. die Code-Schnipsel Plugin. Vermeiden Sie es, benutzerdefinierten Code direkt in das übergeordnete Theme einzufügen. funktionen.php Datei, da sie überschrieben wird, wenn Sie das Thema aktualisieren.

Sie können den Status "Abgeschlossen" auch in einen anderen Auftragsstatus wie "In Bearbeitung" ändern.

/**
 * @snippet       Programmatically Complete Paid WooCommerce Orders
 * @how-to        businessbloomer.com/woocommerce-customization
 * @author        Rodolfo Melogli, Business Bloomer
 * @testedwith    WooCommerce 9
 * @community     https://businessbloomer.com/club/
 */
 
add_filter( 'woocommerce_payment_complete_order_status', 'bbloomer_autocomplete_processing_orders', 9999 );
 
function bbloomer_autocomplete_processing_orders() {
   return 'completed';
}

Note that the above code snippet won’t work with COD / BACS / Cheque orders when order total is > 0. Check the free plugin on this page to get this sorted.

Zeigen Sie den Namen und die E-Mail-Adresse des Teilnehmers in der Verwaltungs-E-Mail des neuen Auftrags an. #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei. Sie können die E-Mail, in der sie angezeigt wird, ändern, indem Sie eine andere Haken.

.

[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>Teilnehmer-Details</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach(1TP12Event as $ticket) {
            echo "<p>";
            echo '<strong>Vorname</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Nachname</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>E-Mail Adresse</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            echo "</p>";
        }
    }
}

Anzeige aller benutzerdefinierten Teilnehmerfelder ohne Beschriftung in der Verwaltungs-E-Mail für neue Aufträge #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei. Sie können die E-Mail, in der sie angezeigt wird, ändern, indem Sie eine andere Haken.

.

[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>Teilnehmer-Details</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach(1TP12Event as $ticket) {
            echo "<p>";
            echo '<strong>Vorname</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Nachname</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>E-Mail Adresse</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            foreach ($ticket['WooCommerceEventsCustomAttendeeFields'] as $caf) {
                 echo $caf.'<br />';
            }
            echo "</p>";
        }
    }
}

Benutzerdefinierte Teilnehmerfelder mit Beschriftungen in der Verwaltungs-E-Mail für neue Aufträge anzeigen #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei. Sie können die E-Mail, in der sie angezeigt wird, ändern, indem Sie eine andere Haken. Stellen Sie sicher, dass Sie "ovsxtmynwagotamjqieq" und "ruzwhgbuhzuzzdwnnaxe" im Beispielcode durch den Code für Ihr eigenes Teilnehmerfeld ersetzen. Sie finden diese Informationen, wenn Sie ein Ticket bearbeiten und im Abschnitt "Benutzerdefinierte Felder" nach jedem benutzerdefinierten Teilnehmerfeld suchen. Sie müssen jedes benutzerdefinierte Teilnehmerfeld und seine Bezeichnung einzeln hinzufügen.

.

[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>Teilnehmer-Details</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true);
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach(1TP12Event as $ticket) {
            echo "<p>";
            echo '<strong>Vorname</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Nachname</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>E-Mail Adresse</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            echo '<strong>Geburtstag</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ovsxtmynwagotamjqieq']'.<br />';
            echo '<strong>Lieblingslied</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ruzwhgbuhzuzzdwnnaxe']'.<br />';
            echo "</p>";
        }
    }
}

Startzeit der Veranstaltung in der Veranstaltungsliste anzeigen #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei. Gestalten Sie die Anzeige der Uhrzeit, indem Sie CSS für die Klasse "fooevents-date" hinzufügen.

Ändern Sie die Platzierung der Uhrzeit, indem Sie eine andere Haken.

.

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

Anzeige der registrierten Teilnehmer in einem Tabellenformat #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei, um alle registrierten Teilnehmer an Ihrer Veranstaltung in einem Tabellengitterformat auszugeben. Nach dem Hinzufügen des Codeschnipsels können Sie den Shortcode wie folgt verwenden:

[fooevents_attendees]

um alle Teilnehmer für alle Veranstaltungen anzuzeigen, oder wie folgt:

[fooevents_attendees product_id=123]

wobei "123" die ID der Veranstaltung ist, für die Sie die Teilnehmerliste anzeigen möchten.

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

  $output ='';
  $args = array(
    'AnzahlPosts' =&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'
      )
    )
  );

   $he_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;
     
      // Ausgabe aller Ergebnisse - CUSTOMIZE TO YOUR LIKING
      $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]

Anzeige des Veranstaltungsdatums vor dem Titel auf der Produktseite #

Ändern Sie die Platzierung des Datums durch Verwendung eines anderen Haken.

.

[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 ( 1TP12Ende_datum ) {
    printf(
      '<h3>%s</h3>',
      esc_html( 1TP12Startdatum . ' - ' . 1TP12Ende_datum )
    );
  } else if( $start_datum ) {
    printf(
      '<h3>%s</h3>',
      esc_html( $start_date )
    );
  }
}
add_action( 'woocommerce_single_product_summary', 'fooevents_display_date_on_single' );

Wenn Sie das Veranstaltungsdatum als Shortcode zur Verfügung stellen möchten, können Sie die folgende Zeile unterhalb der Funktion hinzufügen:

add_shortcode( 'fooevents_date_on_single', 'fooevents_display_date_on_single');

Dann können Sie den Shortcode [fooevents_date_on_single] um das Ereignisdatum auf der Seite anzuzeigen.

Ersetzen Sie das Sitzplatzsymbol auf dem Sitzplan durch ein anderes Bild #

Ändern Sie das folgende CSS-Codefragment, indem Sie die URL zu einem anderen Bild hinzufügen, das das Standardbild für alle Sitze ersetzen soll. Fügen Sie den geänderten Codeschnipsel in die benutzerdefinierte CSS-Datei Ihres Themes ein.

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

Entfernen Sie das Sitzplatzsymbol auf dem Sitzplan, damit die Plätze als Kästchen angezeigt werden. #

#fooevents_bestuhlung_dialog .fooevents_bestuhlung_grafik_ansicht_zeile span {
  background-image: none;
}

Ändern Sie die Richtung der Sitzplatznummern auf dem Sitzplan #

#fooevents_bestuhlung_dialog .fooevents_bestuhlung_diagramm_ansicht_zeile {
  Anzeige: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
}

Zeigen Sie ungerade Sitzplätze auf der rechten Seite und gerade Sitzplätze auf der linken Seite an. #

#fooevents_bestuhlung_dialog .fooevents_bestuhlung_diagramm_ansicht_zeile > span:nth-of-type(even) {
  float: links;
}

Sitzplätze in der Mitte des Sitzplans anzeigen #

[css]
#fooevents_bestuhlung_dialog .fooevents_bestuhlung_grafik_ansicht_zeile_name,
#fooevents_bestuhlung_dialog .fooevents_bestuhlung_diagramm_ansicht_zeile {
  text-align: zentriert;
}
[/css]

Den Sitzplan horizontal scrollen lassen, anstatt die Plätze in der nächsten Reihe anzuzeigen #

Dies kann nützlich sein, wenn Sie viele Sitze pro Reihe haben und diese nebeneinander statt in der nächsten Reihe angezeigt werden sollen, wenn sie nicht in eine Zeile passen.

#fooevents_bestuhlung_dialog .fooevents_bestuhlung_diagramm_ansicht_zeile {
  overflow-x: scroll;
  white-space: nowrap;
}

Anzeige eines Kalendergitters auf Desktops und einer Kalenderwochenliste auf Mobiltelefonen #

Fügen Sie zwei Kalender-Shortcodes auf der Seite oder dem Beitrag ein, auf der/dem Sie Ihren Kalender anzeigen möchten. Der erste Shortcode zeigt ein Kalendergitter an und sollte wie folgt aussehen:

[fooevents_calendar id="desktop"]

Der zweite Shortcode zeigt eine Kalenderwochenliste an und sollte wie folgt aussehen:

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

Fügen Sie das folgende CSS-Codefragment in die benutzerdefinierte CSS-Datei Ihres Themas ein. Stellen Sie sicher, dass der Wert des CSS-ID-Selektors mit dem Wert des Attributs "id" übereinstimmt, das Sie im Shortcode angegeben haben. Sie können die Eigenschaft "max-width" an die Bildschirmgröße anpassen, bei der Sie die Kalenderwochenliste anzeigen und das Kalendergitter ausblenden möchten.

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

Dynamic Calendar #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php file to display the Calendar with only the current event product when used on Product Descriptions/pages.

function dynamic_fooevents_calendar_shortcode() {
  if (is_product()) {
      global $product;
      if ($product) {
          $product_id = $product->get_id();
          return do_shortcode('[fooevents_calendar post="' . $product_id . '"]');
      }
  }
  return ''; // fallback if not on product page
}

add_shortcode('dynamic_fooevents_calendar', 'dynamic_fooevents_calendar_shortcode');

After adding the code snippet, you can use the shortcode like this:

[dynamic_fooevents_calendar]

Ändern Sie die Position des Symbols "Details des Käufers kopieren #

Mit dem folgenden Ausschnitt wird die Kopierschaltfläche rechts von der Beschriftung des Vornamens ausgerichtet:

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

Wenn Sie keine Beschriftungen, sondern Eingabeplatzhalter verwenden, benutzen Sie bitte den folgenden Codeschnipsel:

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

Zeigen Sie auf der Ereignisseite zuerst die Registerkarte "Ereignisdetails" an. #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei.

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

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

}

Alle "In den Warenkorb"-Schaltflächen auf Produktseiten verweisen #

Wenn es sich bei einem Produkt um ein einfaches Produkt handelt, wird das Produkt über die Schaltfläche "In den Warenkorb" automatisch in den Warenkorb des Kunden gelegt. Wenn Sie die FooEvents Buchungserweiterung verwenden, kann es erforderlich sein, dass Ihre Kunden zuerst auf die Produktseite gehen, um das Buchungsdatum und den Termin auszuwählen. Das folgende Snippet stellt sicher, dass der Benutzer zur Produktseite weitergeleitet wird, wenn er auf die Schaltfläche "In den Warenkorb" für einfache Produkte klickt.

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

Anzeige FREE, wenn der Ereignispreis auf Null (0) gesetzt ist #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei, wenn Sie Ereignisse und Produkte mit einem Preis von "0" in "FREE" ändern möchten. Sie können das Wort "KOSTENLOS" auch durch ein anderes Wort oder eine andere Phrase ersetzen oder es leer lassen, wenn Sie nicht möchten, dass etwas angezeigt wird.

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

Anzeige von Produkten und Variationen (Tickets) in einem Tabellengitterformat #

Fügen Sie den folgenden Codeschnipsel zu Ihrem Theme hinzu funktionen.php Datei, um Produkte und Variationen in einem Tabellengitterformat auf der Veranstaltungs-/Produktseite anstelle der Standard-Dropdown-Liste anzuzeigen. Jede Ticketoption wird in einer neuen Zeile aufgeführt und hat eine eigene Mengenauswahl.

Bitte beachten: This code snippet might be incompatible with the FooEvents Sitzplätze und FooEvents Buchungen selectors on the product page. It should work with Seating events if you only display the Seating Chart on the Checkout page.

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

    $variations = find_valid_variations();

    // Check if the special 'price_grid' meta is set, if it is, load the default template:
    if ( get_post_meta($post->ID, 'price_grid', true) ) {
        // 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->get_available_variations(),
                'attributes'            => $product->get_variation_attributes(),
                'selected_attributes'   => $product->get_variation_default_attributes()
            ) );
        return;
    }

    // Cool, lets do our own template!
    ?>
    <table class="variations variations-grid" cellspacing="0">
        <tbody>
            <?php
            foreach ($variations as $key => $value) {
                if( !$value['variation_is_visible'] ) continue;
            ?>
            <tr>
                <td>
                    <?php foreach($value['attributes'] as $key => $val ) {
                        $val = str_replace(array('-','_'), ' ', $val);
                        printf( '<span class="attr attr-%s">%s</span>', $key, ucwords($val) );
                    } ?>
                </td>
                <td>
                    <?php echo $value['price_html'];?>
                </td>
                <td>
                    <?php if( $value['is_in_stock'] ) { ?>
                    <form class="cart" action="/de//?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() ); ?>">
                        <?php woocommerce_quantity_input(); ?>
                        <?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> In den Warenkorb legen</button>
                        <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="de"/></form>
                    <?php } else { ?>
                        <p class="stock out-of-stock"><?php _e( 'This product is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
                    <?php } ?>
                </td>
            </tr>
            <?php } ?>
        </tbody>
    </table>
    <?php
}

function find_valid_variations() {
    global $product;

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

    // Loop through all variations
    foreach( $variations as $variation ) {

        // Peruse the attributes.

        // 1. If both are explicitly set, this is a valid variation
        // 2. If one is not set, that means any, and we must 'create' the rest.

        $valid = true; // so far
        foreach( $attributes as $slug => $args ) {
            if( array_key_exists("attribute_$slug", $variation['attributes']) && !empty($variation['attributes']["attribute_$slug"]) ) {
                // Exists

            } else {
                // Not exists, create
                $valid = false; // it contains 'anys'
                // loop through all options for the 'ANY' attribute, and add each
                foreach( explode( '|', $attributes[$slug]['value']) as $attribute ) {
                    $attribute = trim( $attribute );
                    $new_variant = $variation;
                    $new_variant['attributes']["attribute_$slug"] = $attribute;
                    $new_variants[] = $new_variant;
                }

            }
        }

        // This contains ALL set attributes, and is itself a 'valid' variation.
        if( $valid )


            $new_variants[] = $variation;

    }

    return $new_variants;
}

Fügen Sie Ihren Ticket-Themen Unterstützung für tägliche Start- und Endzeiten hinzu #

Ab der Version 1.5.5 der FooEvents Mehrtägig Plugin können Sie unterschiedliche Start- und Endzeiten für jeden Tag eines Jahres auswählen. mehrtägige Veranstaltung. Unterstützung für diese Funktion wurde auch in alle FooEvents Ticket-Themen. Bitte diese Anweisungen befolgen um ein bestehendes Ticket-Thema zu aktualisieren. Wenn Sie ein benutzerdefiniertes Ticket-Thema verwenden und nicht in der Lage sind, das Ticket-Thema durch die aktualisierte Version zu ersetzen, fügen Sie bitte den folgenden Codeschnipsel zu Ihrem Ticket-Thema hinzu, um Unterstützung für Start- und Endzeiten hinzuzufügen. [php]

<!-- MULTI-DAY DETAILS -->
										

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

Die standardmäßigen WooCommerce-Schaltflächen "In den Warenkorb", die auf den Seiten des Shops angezeigt werden, fügen automatisch ein Produkt zum Warenkorb hinzu und leiten zur Warenkorb-Seite weiter. Wenn Sie FooEvents Bookings verwenden, möchten Sie den Benutzer vielleicht lieber über die Produktseite leiten, damit er zunächst einen Termin und eine Uhrzeit für die Buchung auswählen kann, bevor er zur Warenkorbseite weitergeht. Das folgende Snippet ersetzt den "Add-to-cart"-Link durch einen Link auf die Produktseite. Dadurch wird sichergestellt, dass der Benutzer die entsprechende Buchungsauswahl auf der Produktseite treffen kann, bevor er zur Warenkorb- oder Kassenseite weitergeht.

/**
* @snippet WooCommerce Schaltfläche 'In den Warenkorb' in 'Produkt anzeigen' ändern
* @source https://www.wptechnic.com/?p=4615
* @Autor Muhammad Tamzid
* @compatible WC 4.3.1
*/
// Ändern Sie die Schaltfläche WooCommerce 'In den Warenkorb' in 'Produkt anzeigen'.
add_filter( 'woocommerce_loop_add_to_cart_link', 'wpt_custom_view_product_button', 10, 2 );
function wpt_custom_view_product_button( $button, $product ) {
    // Bei variablen Produkten ignorieren
    if ( $product-&gt;is_type( 'variable' ) ) {
        return $button;
    }
    // Text der Schaltfläche hier
    $button_text = __( 'Ticket buchen', 'woocommerce' );
    return '<a class="button wpt-custom-view-product-button" href="/de/' . $product->get_permalink() . '/">' . $button_text . '</a>';
}

Anzeige des Veranstaltungsdatums für "Einzel"-Veranstaltungen im Warenkorb und auf der Kassenseite #

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

 

 

Artikel

Schlagwörter , , , , , , , , , , , , , , , , , , ,