WooCommerce:重命名,添加和删除订单下拉菜单中的电子邮件模板发送电子邮件小部件

时间:2018-11-07 16:12:11

标签: php wordpress woocommerce

几天前,我问了一个问题,如何在WooCommerce中重命名电子邮件模板。幸运的是,一个来自Stackoverflow的好成员帮助了他。

转到订单概述后,我看到下拉菜单中可以手动发送电子邮件的模板没有重命名,如下图所示:

enter image description here

因此要提出一个完全限定的问题:如何在此下拉菜单中重命名,添加和删除电子邮件模板?

更新

我已经找到了创建小部件的代码,但是我不知道如何在其中进行重命名或添加电子邮件:

/**
     * Resend order emails
     */
    public function send_order_email_meta_box( $post ) {
        ?>
        <ul class="wpo_wcpdf_send_emails submitbox">
            <li class="wide" id="actions">
                <select name="wpo_wcpdf_send_emails">
                    <option value=""></option>
                    <?php
                    $mailer           = WC()->mailer();
                    $available_emails = apply_filters( 'woocommerce_resend_order_emails_available', array( 'new_order', 'cancelled_order', 'customer_processing_order', 'customer_completed_order', 'customer_invoice' ) );
                    $mails            = $mailer->get_emails();
                    if ( ! empty( $mails ) && ! empty( $available_emails ) ) { ?>
                        <?php
                        foreach ( $mails as $mail ) {
                            if ( in_array( $mail->id, $available_emails ) && 'no' !== $mail->enabled ) {
                                echo '<option value="send_email_' . esc_attr( $mail->id ) . '">' . esc_html( $mail->title ) . '</option>';
                            }
                        } ?>
                        <?php
                    }
                    ?>
                </select>
                <input type="submit" class="button save_order button-primary" name="save" value="<?php esc_attr_e( 'Save order & send email', 'woocommerce-pdf-invoices-packing-slips' ); ?>" />
                <?php
                $title = __( 'Send email', 'woocommerce-pdf-invoices-packing-slips' );
                $url = wp_nonce_url( add_query_arg('wpo_wcpdf_action','resend_email'), 'generate_wpo_wcpdf' );
                // printf('<a href="%s" class="button wpo_wcpdf_send_email"><span>%s</span></a>')
                ?>
            </li>
        </ul>
        <?php
    }

1 个答案:

答案 0 :(得分:0)

Soooo我已经尝试了很多,找到了解决方法:

/**
 * Change array which adds the widget in each order for sending emails
 */
add_filter( 'woocommerce_resend_order_emails_available', 'change_emails_to_send', 10, 1 );
function change_emails_to_send() {
    return array( 'new_order', 'cancelled_order', 'customer_processing_order', 'customer_completed_order' );
}

您现在可以添加或删除电子邮件。我不确定如何重命名,但希望我能找到。