Wordpress WooCommerce - 在电子邮件中添加订单详细信息

时间:2014-02-27 00:01:44

标签: php wordpress email

我正在尝试自定义“订单完成”电子邮件。具体来说,我有一些需要许可证密钥的产品(软件)。到目前为止,我已经完成了在数据库中生成和存储许可证密钥(以及验证)的算法。

在我的子主题中,在/woocommerce/order/order-details.php下,我添加了相应的代码以将许可证密钥添加到数据库中。我不想在order-details页面上显示它们,因为用户可以关闭此网页然后丢失密钥。所以,我想通过电子邮件发送它们(或在电子邮件和订单详情页面中显示密钥)。我想使用“订单已完成”电子邮件,因为我不想发送多封电子邮件。

我想出了如何添加到order-details.php模板,因为有预先存在的WC_ORDER实例:$order = new WC_Order( $order_id )。在那之后,我只是查看了文档,找到了我需要的正确方法,然后我想出了这个:

foreach( $order->get_items() as $item ) {
                $_product     = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
                $item_meta    = new WC_Order_Item_Meta( $item['item_meta'] );

                ?>
                // some code that was already included

                            if ( $_product && $_product->exists() && $_product->is_downloadable() && $order->is_download_permitted() ) {
                                if ($_product->get_attribute('needs_license_key') == "True") { // custom attribute for my software
                                    // generate and store license keys

我只需添加if ($_product->get_attribute('needs_license_key')...部分,所以它不是很复杂。

但是,Order-Completed模板中没有这个,所以我不确定这是怎么回事。我需要遍历所有产品,检查它们是否可下载(我已经有了代码),然后找到产品密钥(我知道如何做到这一点)。我的主要问题是:如何找出发送电子邮件的订单号以及该订单的其他统计信息(例如列出的产品及其属性,以便我可以如上所述迭代它们)?我不确定如何使用WooCommerce完成这项工作。

0 个答案:

没有答案