linkedin

Θέματα

⌘K
  1. /
  2. /
  3. Θέματα
  4. /

Αποσπάσματα κώδικα

Αυτό είναι ένα Επίπεδο προγραμματιστή έγγραφο. Εάν δεν είστε εξοικειωμένοι με τον κώδικα/προτύπων και την επίλυση πιθανών συγκρούσεων, παρακαλούμε απευθυνθείτε σε έναν προγραμματιστή που είναι εξοικειωμένος με το FooEvents ή/και το WooCommerce.

Σημαντικό, διαβάστε πρώτα #

Αυτά τα αποσπάσματα παρέχονται ως ευγενική χορηγία και δεν αποτελούν μέρος της προσφοράς των προϊόντων FooEvents. Θεωρούνται προσαρμογές και δεν υποστηρίζονται επίσημα από την FooEvents. Ως εκ τούτου, δεν παρέχουμε υποστήριξη για τα αποσπάσματα και τις προσαρμογές σύμφωνα με την Όροι χρήσης. Παρακαλούμε χρησιμοποιήστε το με δική σας ευθύνη.

Αυτόματη ολοκλήρωση παραγγελιών #

Αυτό επιτρέπει την αυτόματη αποστολή των εισιτηρίων μόλις ληφθεί η πληρωμή, αντί να χρειάζεται να ολοκληρώσετε χειροκίνητα την παραγγελία. Παρακαλούμε βεβαιωθείτε ότι τα προϊόντα της εκδήλωσής σας έχουν ρυθμιστεί σε "Εικονικό" και "Κατεβάστε το" όπως εξηγείται στο βοήθεια τεκμηρίωσης, διαφορετικά, η σειρά δεν θα ολοκληρωθεί αυτόματα, ακόμη και αν έχει γίνει πληρωμή.

Προσθέστε τον ακόλουθο κώδικα στο θέμα του παιδιού σας functions.php αρχείο ή μέσω ενός πρόσθετου που επιτρέπει την προσθήκη προσαρμοσμένων συναρτήσεων, όπως η Αποσπάσματα κώδικα plugin. Αποφύγετε την προσθήκη προσαρμοσμένου κώδικα απευθείας στο θέμα του γονέα σας functions.php αρχείο, καθώς θα αντικατασταθεί όταν ενημερώσετε το θέμα.

Θα μπορούσατε επίσης να αλλάξετε την κατάσταση "Ολοκληρώθηκε" σε μια άλλη κατάσταση παραγγελίας, όπως "Επεξεργασία".

/**
 * Αυτόματη ολοκλήρωση όλων των παραγγελιών 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' ),
}

Εμφάνιση του ονόματος και του email του συμμετέχοντα στο email του διαχειριστή της Νέας Παραγγελίας #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο. Μπορείτε να αλλάξετε το email στο οποίο εμφανίζεται αυτό, χρησιμοποιώντας ένα διαφορετικό γάντζο.

.

[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>Λεπτομέρειες των συμμετεχόντων</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true),
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Όνομα</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Επώνυμο</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>Διεύθυνση ηλεκτρονικού ταχυδρομείου</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            echo "</p>";
        }
    }
}

Εμφάνιση όλων των προσαρμοσμένων πεδίων των συμμετεχόντων χωρίς ετικέτες στο email διαχείρισης νέας παραγγελίας #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο. Μπορείτε να αλλάξετε το email στο οποίο εμφανίζεται αυτό, χρησιμοποιώντας ένα διαφορετικό γάντζο.

.

[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>Λεπτομέρειες των συμμετεχόντων</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true),
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Όνομα</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Επώνυμο</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>Διεύθυνση ηλεκτρονικού ταχυδρομείου</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            foreach ($ticket['WooCommerceEventsCustomAttendeeFields'] as $caf) {
                 echo $caf.'<br />';
            }
            echo "</p>";
        }
    }
}

Εμφάνιση προσαρμοσμένων πεδίων συμμετεχόντων με ετικέτες στο email διαχείρισης νέας παραγγελίας #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο. Μπορείτε να αλλάξετε το email στο οποίο εμφανίζεται αυτό, χρησιμοποιώντας ένα διαφορετικό γάντζο. Βεβαιωθείτε ότι έχετε αντικαταστήσει το "ovsxtmynwagotamjqieq" και το "ruzwhgbuhzuzzdwnnaxe" στον κώδικα του παραδείγματος με τον δικό σας προσαρμοσμένο κωδικό πεδίου για τους συμμετέχοντες. Μπορείτε να βρείτε αυτές τις πληροφορίες εάν επεξεργαστείτε ένα εισιτήριο και αναζητήσετε κάθε προσαρμοσμένο πεδίο συμμετέχοντα στην ενότητα "Custom Fields" (Προσαρμοσμένα πεδία). Θα πρέπει να προσθέσετε κάθε προσαρμοσμένο πεδίο συμμετέχοντα και την ετικέτα του ξεχωριστά.

.

[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>Λεπτομέρειες των συμμετεχόντων</h3>";
    $WooCommerceEventsOrderTickets = get_post_meta($order-&gt;get_id(), 'WooCommerceEventsOrderTickets', true),
    foreach($WooCommerceEventsOrderTickets as $event) {
        foreach($event as $ticket) {
            echo "<p>";
            echo '<strong>Όνομα</strong>: '.$ticket['WooCommerceEventsAttendeeName'].'<br />';
            echo '<strong>Επώνυμο</strong>: '.$ticket['WooCommerceEventsAttendeeLastName'].'<br />';
            echo '<strong>Διεύθυνση ηλεκτρονικού ταχυδρομείου</strong>: '.$ticket['WooCommerceEventsAttendeeEmail'].'<br />';
            echo '<strong>Γενέθλια</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ovsxtmynwagotamjqieq'].".<br />';
            echo '<strong>Αγαπημένο τραγούδι</strong>: '.$ticket['WooCommerceEventsCustomAttendeeFields']['fooevents_custom_ruzwhgbuhzuzzdwnnaxe'].''<br />';
            echo "</p>";
        }
    }
}

Εμφάνιση της ώρας έναρξης του συμβάντος στη λίστα συμβάντων #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο. Διαμορφώστε την εμφάνιση της ώρας προσθέτοντας CSS για την κλάση 'fooevents-date'.

Αλλάξτε την τοποθέτηση της ώρας χρησιμοποιώντας ένα διαφορετικό γάντζο.

.

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

Εμφάνιση των εγγεγραμμένων συμμετεχόντων σε μορφή πίνακα #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο για να εξάγετε όλους τους εγγεγραμμένους συμμετέχοντες στην εκδήλωσή σας σε μορφή πίνακα. Αφού προσθέσετε το απόσπασμα κώδικα, μπορείτε να χρησιμοποιήσετε τον σύντομο κωδικό ως εξής:

[fooevents_attendees]

για να εμφανίσετε όλους τους συμμετέχοντες για όλες τις εκδηλώσεις, ή ως εξής:

[fooevents_attendees product_id=123]

όπου "123" είναι το αναγνωριστικό της εκδήλωσης για την οποία θέλετε να εμφανίσετε τη λίστα συμμετεχόντων.

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() ):
    ( $the_query-&gt;have_posts() ) : $the_query-&gt;the_post(),
    $postid = $the_query-&gt;post-&gt;ID,
     
      // εξαγωγή όλων των ευρημάτων - ΠΡΟΣΑΡΜΟΓΗ ΣΤΗΝ ΑΓΑΠΗ ΣΑΣ
      $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]

Εμφάνιση της ημερομηνίας του συμβάντος πριν από τον τίτλο στη σελίδα του προϊόντος #

Αλλάξτε την τοποθέτηση της ημερομηνίας χρησιμοποιώντας ένα διαφορετικό γάντζο.

.

[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' ),

Αν θέλετε να κάνετε την ημερομηνία της εκδήλωσης διαθέσιμη ως σύντομο κωδικό, μπορείτε να προσθέσετε την ακόλουθη γραμμή κάτω από τη συνάρτηση:

add_shortcode( 'fooevents_date_on_single', 'fooevents_display_date_on_single'),

Τότε μπορείτε να χρησιμοποιήσετε τον σύντομο κωδικό [fooevents_date_on_single] για να εμφανίσετε την ημερομηνία του συμβάντος στη σελίδα.

Αντικαταστήστε το εικονίδιο της θέσης στο διάγραμμα θέσεων με μια διαφορετική εικόνα. #

Τροποποιήστε το ακόλουθο τμήμα κώδικα CSS προσθέτοντας τη διεύθυνση URL μιας διαφορετικής εικόνας που θέλετε να αντικαταστήσει την προεπιλεγμένη εικόνα της θέσης για όλες τις θέσεις. Προσθέστε το τροποποιημένο απόσπασμα κώδικα στο προσαρμοσμένο αρχείο CSS του θέματός σας.

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

Αφαιρέστε το εικονίδιο της θέσης στο διάγραμμα θέσεων, ώστε οι θέσεις να εμφανίζονται ως κουτιά. #

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

Αλλαγή της κατεύθυνσης των αριθμών θέσεων στο διάγραμμα θέσεων #

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

Δείξτε τις μονές θέσεις στα δεξιά και τις ζυγές θέσεις στα αριστερά. #

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

Εμφάνιση θέσεων στη μέση του πίνακα καθισμάτων #

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

Αφήστε το διάγραμμα θέσεων να κυλήσει οριζόντια αντί να εμφανίζει θέσεις στην επόμενη σειρά. #

Αυτό μπορεί να είναι χρήσιμο αν έχετε πολλές θέσεις ανά σειρά και θέλετε να εμφανίζονται η μία δίπλα στην άλλη αντί για την επόμενη σειρά, αν δεν χωράνε σε μία γραμμή.

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

Εμφάνιση ενός πλέγματος ημερολογίου σε επιτραπέζιους υπολογιστές και μιας λίστας εβδομάδων ημερολογίου σε κινητά τηλέφωνα #

Προσθέστε δύο συντομεύσεις ημερολογίου στη σελίδα ή τη δημοσίευση όπου θέλετε να εμφανίσετε το ημερολόγιό σας. Ο πρώτος σύντομος κωδικός θα εμφανίσει ένα πλέγμα ημερολογίου και θα πρέπει να μοιάζει με αυτό:

[fooevents_calendar id="desktop"]

Ο δεύτερος σύντομος κώδικας θα εμφανίσει μια λίστα εβδομάδων ημερολογίου και θα πρέπει να μοιάζει με αυτό:

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

Προσθέστε το ακόλουθο απόσπασμα κώδικα CSS στο προσαρμοσμένο αρχείο CSS του θέματός σας. Βεβαιωθείτε ότι η τιμή του επιλογέα CSS ID είναι η ίδια με την τιμή του χαρακτηριστικού "id" που έχετε καθορίσει στον σύντομο κωδικό. Μπορείτε να προσαρμόσετε την ιδιότητα "max-width" στο μέγεθος της οθόνης όπου θέλετε να εμφανίζεται η λίστα εβδομάδων του ημερολογίου και να αποκρύπτεται το πλέγμα του ημερολογίου.

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

Αλλαγή της θέσης του εικονιδίου Αντιγραφή στοιχείων αγοραστή #

Το παρακάτω απόσπασμα θα ευθυγραμμίσει το κουμπί αντιγραφής στα δεξιά της ετικέτας του πρώτου ονόματος:

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

Αν δεν χρησιμοποιείτε ετικέτες αλλά μάλλον placeceholders εισόδου, χρησιμοποιήστε το ακόλουθο απόσπασμα κώδικα:

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

Εμφάνιση της καρτέλας "Λεπτομέρειες συμβάντος" πρώτα στη σελίδα συμβάντος #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο.

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

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

}

Κατευθύνετε όλα τα κουμπιά 'Προσθήκη στο καλάθι' στις σελίδες προϊόντων #

Εάν ένα προϊόν είναι ένα απλό προϊόν, από προεπιλογή, το κουμπί "Προσθήκη στο καλάθι" θα προσθέσει αυτόματα ένα προϊόν στο καλάθι του πελάτη. Όταν χρησιμοποιείτε την επέκταση FooEvents Bookings, μπορεί να απαιτήσετε από τους πελάτες σας να μεταβούν πρώτα στη σελίδα του προϊόντος για να επιλέξουν την ημερομηνία κράτησης και το χρονικό διάστημα. Το παρακάτω απόσπασμα θα διασφαλίσει ότι όταν το κουμπί "Προσθήκη στο καλάθι" πατηθεί για τα απλά προϊόντα, ο χρήστης θα οδηγηθεί στη σελίδα του προϊόντος.

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

Εμφάνιση ΔΩΡΕΑΝ εάν η τιμή του συμβάντος είναι μηδέν (0) #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αν θέλετε να αλλάξετε τα γεγονότα και τα προϊόντα με τιμή "0" σε "ΔΩΡΕΑΝ". Μπορείτε επίσης να αντικαταστήσετε τη λέξη "ΔΩΡΕΑΝ" με μια άλλη λέξη ή φράση ή να την αφήσετε κενή αν δεν θέλετε να εμφανίζεται τίποτα.

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

Εμφάνιση προϊόντων και παραλλαγών (εισιτηρίων) σε μορφή πίνακα πλέγματος #

Προσθέστε το ακόλουθο κομμάτι κώδικα στο θέμα σας functions.php αρχείο για να εμφανίζονται τα προϊόντα και οι παραλλαγές σε μορφή πλέγματος πίνακα στη σελίδα συμβάντος/προϊόντος αντί της προεπιλεγμένης αναπτυσσόμενης λίστας. Κάθε επιλογή εισιτηρίου θα παρατίθεται σε μια νέα γραμμή και θα έχει το δικό της επιλογέα ποσότητας.

Παρακαλώ σημειώστε: Αυτό το απόσπασμα κώδικα δεν είναι συμβατό με το FooEvents Καθίσματα και FooEvents Κρατήσεις επιλογείς σελίδας προϊόντων.

επιλογείς σελίδας προϊόντος.

[php]
/**
 * Εμφάνιση των παραλλαγών σε μορφή πίνακα.
 */

function woocommerce_variable_add_to_cart() {

	global $product, $post,

	// Εισάγετε μια λίστα με διαχωρισμό με κόμμα των αναγνωριστικών προϊόντων που θα πρέπει να εμφανίζουν τις παραλλαγές σε μορφή πίνακα. Αφήστε το κενό για να εμφανιστούν όλα τα προϊόντα ( π.χ. array() )
	$products = array( ),

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

		$variations = find_valid_variations(),

		// Ελέγξτε αν έχει οριστεί η ειδική μεταβλητή 'price_grid', αν ναι, φορτώστε το προεπιλεγμένο πρότυπο.
		if ( get_post_meta( $post-&gt;ID, 'price_grid', true ) ) {

			// Θέστε σε αναμονή τα σενάρια παραλλαγής.
			wp_enqueue_script( 'wc-add-to-cart-variation' ),

			// Φορτώστε το πρότυπο
			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,
		}
		// Ωραία, ας κάνουμε το δικό μας πρότυπο!
		?&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="/el//?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> Προσθήκη στο καλάθι</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="el"/></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(),
		$attributes = $product-&gt;get_attributes(),
		$new_variants = array(),

		// Βρόχος σε όλες τις παραλλαγές
	foreach ( $variations as $variation ) {

		// Αναζήτηση των χαρακτηριστικών.

		// 1. Εάν και τα δύο είναι ρητά καθορισμένα, πρόκειται για έγκυρη παραλλαγή.
		// 2. Αν ένα από αυτά δεν έχει οριστεί, αυτό σημαίνει ότι είναι οποιαδήποτε και πρέπει να "δημιουργήσουμε" τα υπόλοιπα.

		$valid = true; // μέχρι στιγμής
		foreach ( $attributes as $slug =&gt; $args ) {
			if ( array_key_exists( "attribute_$slug", $variation['attributes'] ) &amp;&amp; ! empty( $variation['attributes'][ "attribute_$slug" ] ) ) {
				// Υπάρχει

			} else {
				// Δεν υπάρχει, δημιουργήστε
				$valid = false; // περιέχει 'anys'
				// βρόχος σε όλες τις επιλογές για το χαρακτηριστικό 'ANY' και προσθήκη κάθε μιας από αυτές.
				foreach ( explode( '|', $attributes[ $slug ]['value'] ) as $attribute ) {
					$attribute = trim( $attribute ),
					$new_variant = $variation,
					$new_variant['attributes'][ "attribute_$slug" ] = $attribute,
					$new_variants[] = $new_variant,
				}
			}
		}

		// Αυτό περιέχει ΟΛΑ τα καθορισμένα χαρακτηριστικά και είναι η ίδια μια "έγκυρη" παραλλαγή.
		if ( $valid ) {

			$new_variants[] = $variation,
		}
	}

		return $new_variants,
}
[/php]

Προσθέστε υποστήριξη για ημερήσιες ώρες έναρξης και λήξης στα θέματα εισιτηρίων σας #

Από την έκδοση 1.5.5 του FooEvents Πολυήμερο plugin, μπορείτε να επιλέξετε διαφορετικές ώρες έναρξης και λήξης για κάθε ημέρα μιας πολυήμερη εκδήλωση. Η υποστήριξη αυτής της λειτουργίας έχει επίσης προστεθεί σε όλα τα FooEvents Θέματα εισιτηρίων. Παρακαλώ ακολουθήστε αυτές τις οδηγίες για να ενημερώσετε ένα υπάρχον θέμα εισιτηρίου. Εάν χρησιμοποιείτε ένα προσαρμοσμένο θέμα εισιτηρίων και δεν μπορείτε να αντικαταστήσετε το θέμα εισιτηρίων με την ενημερωμένη έκδοση, προσθέστε το ακόλουθο τμήμα κώδικα στο θέμα εισιτηρίων σας, προκειμένου να προσθέσετε υποστήριξη για τις ώρες έναρξης και λήξης. [php]

<!-- MULTI-DAY DETAILS -->
										

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

Τα προεπιλεγμένα κουμπιά WooCommerce Προσθήκη στο καλάθι που εμφανίζονται στις σελίδες καταχώρησης του καταστήματος θα προσθέτουν αυτόματα ένα προϊόν στο καλάθι και θα ανακατευθύνουν στη σελίδα του καλαθιού. Όταν χρησιμοποιείτε τις κρατήσεις FooEvents, ίσως προτιμάτε να διοχετεύετε τον χρήστη μέσω της σελίδας του προϊόντος, ώστε να μπορεί πρώτα να κάνει μια επιλογή κράτησης χρονοθυρίδας και ώρας πριν προχωρήσει στη σελίδα του καλαθιού. Το παρακάτω απόσπασμα θα αντικαταστήσει τον σύνδεσμο προσθήκης στο καλάθι με έναν σύνδεσμο προς τη σελίδα του προϊόντος. Αυτό θα διασφαλίσει ότι ο χρήστης θα μπορεί να κάνει την κατάλληλη επιλογή κράτησης στη σελίδα του προϊόντος πριν προχωρήσει στη σελίδα του καλαθιού ή του ταμείου.

/**
* @snippet Αλλαγή του κουμπιού WooCommerce 'Προσθήκη στο καλάθι' σε 'Προβολή προϊόντος'
* @source https://www.wptechnic.com/?p=4615
* @author Muhammad Tamzid
* @συμβατό WC 4.3.1
*/
// Αλλαγή του κουμπιού WooCommerce 'Προσθήκη στο καλάθι' σε 'Προβολή προϊόντος'
add_filter( 'woocommerce_loop_add_to_cart_link', 'wpt_custom_view_product_button', 10, 2 ),
function wpt_custom_view_product_button( $button, $product ) {
    // Αγνόηση για μεταβλητά προϊόντα
    if ( $product-&gt;is_type( 'variable' ) ) {
        return $button,
    }
    // Το κείμενο του κουμπιού εδώ
    $button_text = __( 'Book Ticket', 'woocommerce' ),
    return '<a class="button wpt-custom-view-product-button" href="/el/' . $product->get_permalink() . '/">' . $button_text . '</a>';
}

Εμφάνιση της ημερομηνίας του συμβάντος για τα "μεμονωμένα" συμβάντα στο καλάθι και στη σελίδα πληρωμής #

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

Άρθρα

Ετικέτες , , , , , , , , , , , , , , , , , , ,