当前位置: 首页 > 知识库问答 >
问题:

在woocommerce“完成订单”电子邮件中添加可变产品的“描述”字段内容

单于正业
2023-03-14

电子邮件屏幕抓取显示文本应该去哪里

我尝试将此添加到functions.php中,但它是2015年的,用于“处理”未“完成”的电子邮件:

add_filter( 'woocommerce_product_variation_title_include_attributes', '__return_false' );
function render_product_description($item_id, $item, $order){
    $_product = $order->get_product_from_item( $item );
    echo "<br>" . $_product->post->post_content; 

}

add_action('woocommerce_order_item_meta_end', 'render_product_description',10,3);

我已经尝试过了,但这是几年前的事情,并没有完成我需要的:将产品描述添加到WooCommerce电子邮件通知中

共有1个答案

黄博艺
2023-03-14

要在此时将自定义内容添加到电子邮件模板:

可以使用woocommerce_email_before_order_table挂钩。有关更多信息,请参见此处。

下面的函数将获取每个订购产品的描述(如果描述不为空)。

// adds the product description before the order table in the completed order email
add_action( 'woocommerce_email_before_order_table', 'add_content_before_order_table', 99, 4 );
function add_content_before_order_table( $order, $sent_to_admin, $plain_text, $email ) {

    // only for the email of the completed order
    if ( ! $email->id == 'customer_completed_order' ) {
        return;
    }

    // initializes the array with all product descriptions
    $descriptions = array();

    // for each product ordered
    foreach ( $order->get_items() as $order_item  ) {
        $product = $order_item->get_product();
        // get the product description
        if ( $product->get_description() ) {
            $descriptions[] = $product->get_description();
        }
    }

    // if the $descriptions is not empty it shows it
    if ( ! empty( $descriptions ) ) {
        foreach ( $descriptions as $content ) {
            echo '<p>' . $content . '</p>';
        }
    }

}
 类似资料:
  • 有什么方法我可以添加内容从一个自定义产品字段到‘订单完成'WooCommerce电子邮件? 我已经将此代码添加到functions.php中,以便将自定义字段保存到产品元信息中。 上面的代码工作得很好,它显示了所有“订单完成”电子邮件的自定义文本。 但是,我想用自定义产品字段数据替换文本的URL部分。每个产品的数据都不同。 谢了。

  • 如何将产品说明/单个产品页面的内容(而非简短说明)添加到WooCommerce新订单电子邮件通知中? 我需要知道我的产品的具体书面描述,因为大多数产品几乎都是一样的。

  • 我正在尝试取消/删除在订单发货后将订单状态保存为“已完成”时发送的自动客户电子邮件。 不想发送自动电子邮件的原因是,我在电子邮件模板文件(override)/woocommerce/email/customer-completed-order.php中添加了一个代码,它将在发送给客户的电子邮件中显示在admin中创建的新订单注释,如果我们添加订单注释并保存它,然后将订单状态更改为completed

  • 根据订购的产品,我需要发送两封不同的“新订单”电子邮件。这种情况下,产品存储在不同的位置,我需要发送一封电子邮件,其中只包含存储1中的产品,另一封邮件包含存储2中的产品。如果仅订购了位于存储1的产品,则不应发送电子邮件2,反之亦然。 存储信息是每个产品上的自定义元字段。 我添加了一个自定义电子邮件类,它是的副本,但仅在需要时更改了名称。 我一直在寻找钩子和过滤器,但我不能一路走下去。我也一直在考虑

  • 我试图在处理订单时Woocommerce自动发送给客户的电子邮件中显示交货日期的值。 我已经创建了一个名为“leveranstid”的高级自定义字段值,我希望它与电子邮件中的每个产品一起显示。我试图将下面的代码添加到functions.php中,但似乎不起作用。什么也看不出来。如果有人能帮我找到问题所在,我将不胜感激?

  • 在Woocommerce中,我需要在完成的订单电子邮件上打印一个自定义域。 该模板在我的主题Woocommerce/Emails文件夹中是完全唯一的,因为默认模板不能满足我的需要。 因此,我试图显示以下内容:标题、数量和两个自定义字段 这需要包含在customer-completed-order.php电子邮件模板中,但我不确定打印它需要什么语法。 我在谷歌上找到了一些东西,但它不起作用: