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

将产品描述添加到WooCommerce电子邮件通知中

徐飞尘
2023-03-14

如何将产品说明/单个产品页面的内容(而非简短说明)添加到WooCommerce新订单电子邮件通知中?

我需要知道我的产品的具体书面描述,因为大多数产品几乎都是一样的。

共有1个答案

公羊兴文
2023-03-14

由于您的目标是一个特定的电子邮件通知,首先我们需要获得电子邮件ID,以针对“新订单”电子邮件通知。唯一的方法是先获取它,然后在全局变量中设置值。

然后在woocommerce\u order\u item\u meta\u endaction钩子中连接的自定义函数中,我们专门为新订单电子邮件通知显示产品描述。

这是代码:

 ## Tested on WooCommerce 2.6.x and 3.0+

// Setting the email_is as a global variable
add_action('woocommerce_email_before_order_table', 'the_email_id_as_a_global', 1, 4);
function the_email_id_as_a_global($order, $sent_to_admin, $plain_text, $email ){
    $GLOBALS['email_id_str'] = $email->id;
}

// Displaying product description in new email notifications
add_action( 'woocommerce_order_item_meta_end', 'product_description_in_new_email_notification', 10, 4 );
function product_description_in_new_email_notification( $item_id, $item, $order = null, $plain_text = false ){

    // Getting the email ID global variable
    $refNameGlobalsVar = $GLOBALS;
    $email_id = $refNameGlobalsVar['email_id_str'];

    // If empty email ID we exit
    if(empty($email_id)) return;

    // Only for "New Order email notification"
    if ( 'new_order' == $email_id ) {

        if( version_compare( WC_VERSION, '3.0', '<' ) ) { 
            $product_id = $item['product_id']; // Get The product ID (for simple products)
            $product = wc_get_product($item['product_id']); 
        } else {
            $product = $item->get_product();
            
            if( $product->is_type('variation') ) {
                $product = wc_get_product( $item->get_product_id() );
            }
        }

        // Get the Product description (WC version compatibility)
        if ( method_exists( $item['product'], 'get_description' ) ) {
            $product_description = $product->get_description(); // for WC 3.0+ (new)
        } else {
            $product_description = $product->post->post_content; // for WC 2.6.x or older
        }

        // Display the product description
        echo '<div class="product-description"><p>' . $product_description . '</p></div>';
    }
}

这段代码function.php活动子主题(或主题)的文件中,或者也在任何插件文件中。

此代码经过测试并有效。

woocommerce\u order\u item\u meta\u endaction hook中的代码更新和错误解释:

PHP警告woocommerce_order_item_meta_end(Mike Joley)

 类似资料:
  • 我正在尝试将产品类别添加到电子邮件通知中。自定义字段(时间和日期)起作用,但产品类别显示为“数组”。

  • 在Woocommerce上,我已将电子邮件订单详细信息php模板文件中的变量更改为,但我仍然无法在电子邮件通知中显示图像: 我需要添加链接以及产品图像。一旦用户点击图像,它应该重定向到特定的页面。 将消息从假更改为真,但图像仍未显示在网站中。

  • 如果客户下了一个订单,我想添加相应的电子邮件通知每个订单项目到新的订单电子邮件通知。 如何将产品自定义域中的收件人添加到Woocommerce新订单电子邮件通知中?

  • 电子邮件屏幕抓取显示文本应该去哪里 我尝试将此添加到functions.php中,但它是2015年的,用于“处理”未“完成”的电子邮件: 我已经尝试过了,但这是几年前的事情,并没有完成我需要的:将产品描述添加到WooCommerce电子邮件通知中

  • 在我的WooCommerce网上商店里,我出售洗发水和肥皂等天然产品。目前我只有2个产品。 我想添加一个特定的文本字符串,其中包含一个超链接,指向购买产品的一些背景信息,以防止人们感到困惑: 如果他们购买棕榈油洗发水,我想发送一个超链接,其中包含我们如何制作洗发水等的背景信息。 如果他们买肥皂,我也想买肥皂。 产品A等于超链接A,产品B等于超链接B。 到目前为止,我得到的是: 但它不起作用。 如何

  • 因此,当我在mytheme/functions.php文件中编写这段代码时,这里有一个交易 它只在后端工作(产品编辑页面),它保存了变量,但没有显示在meta或add to card按钮之前或之后,我找不到解决方案 我尝试了echo,但仍然没有结果 所以我以为我是我的主题?不,我在其他vps上安装了wordpress,但我仍然没有显示文本字段text nothing 如果你知道这个问题,请友好地告