2016-07-07 31 views
0

Grundsätzlich möchte ich den Gutschein auf Woocommerce thankyou.php verwendet anzeigen. Hier ist der Code, den ich hinzugefügt habeDisplay Gutschein Beschreibung und ID auf thankyou.php

$coupons = $order->get_items('coupon'); 
foreach ($coupons as $item_id => $item) { 
echo "<span class='coupon-name'><b>".$item['name']."</b></span>"; 
$post = get_post($item_id); 
echo "<p class='coupon-description'>".$post->post_excerpt."</p>"; 
} 

Allerdings wird nur der Gutschein-Code angezeigt, während die Beschreibung nicht.

Hier ist, wo ich meinen Code platziert:

if (! defined('ABSPATH')) { 
exit; 
} 


if ($order) : ?> 



<?php if ($order->has_status('failed')) : ?> 

    <p class="woocommerce-thankyou-order-failed"><?php _e('Unfortunately your order cannot be processed as the originating bank/merchant has declined your transaction. Please attempt your purchase again.', 'woocommerce'); ?></p> 

    <p class="woocommerce-thankyou-order-failed-actions"> 
     <a href="<?php echo esc_url($order->get_checkout_payment_url()); ?>" class="button pay"><?php _e('Pay', 'woocommerce') ?></a> 
     <?php if (is_user_logged_in()) : ?> 
      <a href="<?php echo esc_url(wc_get_page_permalink('myaccount')); ?>" class="button pay"><?php _e('My Account', 'woocommerce'); ?></a> 
     <?php endif; ?> 
    </p> 

<?php else : ?> 

    <?php 
     $coupons = $order->get_items('coupon'); 
     foreach ($coupons as $item_id => $item) { 
      echo "<span class='coupon-name'><b>".$item['name']."</b></span>"; 
      $post = get_post($item_id); 
      echo "<p class='coupon-description'>".$post->post_excerpt."</p>"; 
     } 
    ?> 

    <p class="woocommerce-thankyou-order-received"><?php echo apply_filters('woocommerce_thankyou_order_received_text', __('Thank you. Your order has been received.', 'woocommerce'), $order); ?></p> 

    <ul class="woocommerce-thankyou-order-details order_details"> 
     <li class="order"> 
      <?php _e('Order Number:', 'woocommerce'); ?> 
      <strong><?php echo $order->get_order_number(); ?></strong> 
     </li> 
     <li class="date"> 
      <?php _e('Date:', 'woocommerce'); ?> 
      <strong><?php echo date_i18n(get_option('date_format'), strtotime($order->order_date)); ?></strong> 
     </li> 
     <li class="total"> 
      <?php _e('Total:', 'woocommerce'); ?> 
      <strong><?php echo $order->get_formatted_order_total(); ?></strong> 
     </li> 
     <?php if ($order->payment_method_title) : ?> 
     <li class="method"> 
      <?php _e('Payment Method:', 'woocommerce'); ?> 
      <strong><?php echo $order->payment_method_title; ?></strong> 
     </li> 
     <?php endif; ?> 
    </ul> 
    <div class="clear"></div> 

<?php endif; ?> 

<?php do_action('woocommerce_thankyou_' . $order->payment_method, $order->id); ?> 
<?php do_action('woocommerce_thankyou', $order->id); ?> 
<p class="woocommerce-thankyou-order-received"><?php echo apply_filters('woocommerce_thankyou_order_received_text', __('Thank you. Your order has been received.', 'woocommerce'), null); ?></p> 

Könnte jemand bitte mir dabei helfen?

+0

können Sie erklären, welche Art von Beschreibung ist es? –

+0

Es ist die Beschreibung des Gutscheins. – user6561526

Antwort

0
please use this code hope so it will work for you : 
<?php 
add_action('woocommerce_thankyou', 'apply_product_on_coupon'); 
function apply_product_on_coupon() { 
     global $woocommerce; 

     if (! empty($woocommerce->cart->applied_coupons)) { 
      $my_coupon = $woocommerce->cart->get_coupons() ; 
      foreach($my_coupon as $coupon){ 

       if ($post = get_post($coupon->id)) { 
         if (!empty($post->post_excerpt)) { 
          echo "<span class='coupon-name'><b>".$coupon->code."</b></span>"; 
          echo "<p class='coupon-description'>".$post->post_excerpt."</p>"; 
         } 
       } 
      } 
     } 
    } ?> 

wenn dies nicht dann Coupon Shortcode Plugin arbeiten und rufen Shortcode auf der thankyou Seite https://wordpress.org/plugins/woocommerce-coupon-shortcodes/

<?php echo do_shortcode('[coupon_shortcode]'); ?> 
+0

Es tut mir leid, Raj Kumar Bhardwaj, Ihr Code funktioniert nur, wenn der Gutschein auf den Warenkorb angewendet wird. Wenn Sie zur Kasse gehen, zeigt es nichts an. Hast du irgendeine Lösung? – user6561526

+0

hast du die shortcode-methode mit plugin ausprobiert? –

+0

Ja, aber es zeigt nichts. Ich muss den Gutschein auch auf der Bestellseite anzeigen. (Mein Konto/Bestellung). Kannst du mir bitte helfen? Mein Code zeigt nur den Gutscheinnamen an, aber die Beschreibung wird nicht angezeigt. Allerdings funktioniert Ihr Code auf der Warenkorbseite (vor dem Kauf) – user6561526

0

Sie können wie erhalten diese

if($order->get_used_coupons()) { 

     $coupons_count = count($order->get_used_coupons()); 

     echo '<h4>' . __('Coupons used') . ' (' . $coupons_count . ')</h4>'; 

     echo '<p><strong>' . __('Coupons used') . ':</strong> '; 

     $i = 1; 
     $coupons_list = ''; 

     foreach($order->get_used_coupons() as $coupon) { 
      $coupons_list .= $coupon; 
      if($i < $coupons_count) 
       $coupons_list .= ', '; 
      $i++; 
     } 

     echo '<p><strong>Coupons used (' . $coupons_count . ') :</strong> ' . $coupons_list . '</p>'; }