Wordpress& Woocommerce在订单电子邮件中添加摘录

时间:2013-06-17 12:52:04

标签: php wordpress plugins woocommerce

Wordpress和Woocommerce有点问题我希望有人可以帮助我。

当一个人购买时会收到一封包含标题,数量等数据的电子邮件......我还会在quatity附近添加产品的摘录。经典<? Php the_excerpt ();?>不起作用,有人知道该怎么做吗?

该文件是woocommerce \ templates \ emails

中的“email-order-items”

以下是代码:

 <?php

        $args = array( 'post_type' => 'product', 'posts_per_page' => 1, 'orderby' => 'desc' );

        $loop = new WP_Query( $args ); ?>
<?php
/**
 * Email Order Items
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates/Emails
 * @version     2.0.3
 */

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

global $woocommerce;

foreach ($items as $item) :

    // Get/prep product data
    $_product = $order->get_product_from_item( $item );
    $item_meta = new WC_Order_Item_Meta( $item['item_meta'] );
    $image = ($show_image) ? '<img src="'. current(wp_get_attachment_image_src( get_post_thumbnail_id( $_product->id ), 'thumbnail')) .'" alt="Product Image" height="'.$image_size[1].'" width="'.$image_size[0].'" style="vertical-align:middle; margin-right: 10px;" />' : '';

    ?>
    <tr>
        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php

            // Show title/image etc
            echo    apply_filters( 'woocommerce_order_product_image', $image, $_product, $show_image);

            // Product name
            echo    apply_filters( 'woocommerce_order_product_title', $item['name'], $_product );

            // SKU
            echo    ($show_sku && $_product->get_sku()) ? ' - cod. articolo (#' . $_product->get_sku() . ')' : '';

            // File URLs
            if ( $show_download_links && $_product->exists() && $_product->is_downloadable() ) {

                $download_file_urls = $order->get_downloadable_file_urls( $item['product_id'], $item['variation_id'], $item );

                $i = 0;

                foreach ( $download_file_urls as $file_url => $download_file_url ) {
                    echo '<br/><small>';

                    if ( count( $download_file_urls ) > 1 ) {
                        echo sprintf( __('Download %d:', 'woocommerce' ), $i + 1 );
                    } elseif ( $i == 0 )
                        echo __( 'Download:', 'woocommerce' );

                    echo ' <a href="' . $download_file_url . '" target="_blank">' . basename( $file_url ) . '</a></small>';

                    $i++;
                }
            }

            // Variation

            echo    ($item_meta->meta) ? '<br/><small>' . nl2br( $item_meta->display( true, true ) ) . '</small>' : '';


        ?>
        </td>

        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $item['qty'] ;?> x <?php the_excerpt(); ?> </td>



        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $order->get_formatted_line_subtotal( $item ); ?></td>
    </tr>

    <?php if ($show_purchase_note && $purchase_note = get_post_meta( $_product->id, '_purchase_note', true)) : ?>
        <tr>
            <td colspan="3" style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo apply_filters('the_content', $purchase_note); ?></td>
        </tr>


    <?php endif; ?> 
<?php endforeach; ?>

非常感谢

2 个答案:

答案 0 :(得分:0)

要获取电子邮件的摘要,请尝试使用此代码。

<?php
/**
 * Email Order Items
 *
 * @author      WooThemes
 * @package     WooCommerce/Templates/Emails
 * @version     2.1.2
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

foreach ( $items as $item_id => $item ) :
    $_product     = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );

    /* To get product excerpt */
    $product_data = get_post( $item['product_id'] );
    $excerpt = strip_tags($product_data->post_excerpt);
    echo $excerpt;

    $item_meta    = new WC_Order_Item_Meta( $item['item_meta'], $_product );
    ?>
    <tr>
        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee; word-wrap:break-word;"><?php

            // Show title/image etc
            if ( $show_image ) {
                echo apply_filters( 'woocommerce_order_item_thumbnail', '<img src="' . ( $_product->get_image_id() ? current( wp_get_attachment_image_src( $_product->get_image_id(), 'thumbnail') ) : wc_placeholder_img_src() ) .'" alt="' . __( 'Product Image', 'woocommerce' ) . '" height="' . esc_attr( $image_size[1] ) . '" width="' . esc_attr( $image_size[0] ) . '" style="vertical-align:middle; margin-right: 10px;" />', $item );
            }

            // Product name
            echo apply_filters( 'woocommerce_order_item_name', $item['name'], $item );

            // SKU
            if ( $show_sku && is_object( $_product ) && $_product->get_sku() ) {
                echo ' (#' . $_product->get_sku() . ')';
            }

            // File URLs
            if ( $show_download_links && is_object( $_product ) && $_product->exists() && $_product->is_downloadable() ) {

                $download_files = $order->get_item_downloads( $item );
                $i              = 0;

                foreach ( $download_files as $download_id => $file ) {
                    $i++;

                    if ( count( $download_files ) > 1 ) {
                        $prefix = sprintf( __( 'Download %d', 'woocommerce' ), $i );
                    } elseif ( $i == 1 ) {
                        $prefix = __( 'Download', 'woocommerce' );
                    }

                    echo '<br/><small>' . $prefix . ': <a href="' . esc_url( $file['download_url'] ) . '" target="_blank">' . esc_html( $file['name'] ) . '</a></small>';
                }
            }

            // Variation
            if ( $item_meta->meta ) {
                echo '<br/><small>' . nl2br( $item_meta->display( true, true ) ) . '</small>';
            }

        ?></td>
        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $item['qty'] ;?></td>
        <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $order->get_formatted_line_subtotal( $item ); ?></td>
    </tr>

    <?php if ( $show_purchase_note && is_object( $_product ) && $purchase_note = get_post_meta( $_product->id, '_purchase_note', true ) ) : ?>
        <tr>
            <td colspan="3" style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo wpautop( do_shortcode( $purchase_note ) ); ?></td>
        </tr>
    <?php endif; ?>

<?php endforeach; ?>

答案 1 :(得分:-1)

我使用以下代码来获取Woocommerce订单帖子(送货单)的摘录。

$post_id = $post_id_of_the_product;
$page_data = get_page( $post_id );
$excerpt = strip_tags($page_data->post_excerpt);