在WooCommerce电子邮件通知中将类添加到自定义元数据

问题描述 投票:1回答:1

我正在保存自定义订单元以订购电子邮件,但也需要在我的自定义模板上设置样式。如果我可以给p-tag提供一个包含元组件的类,但是我的类数组没有做到这一点,那将是最简单的。

我尝试过的:

function salesman_email_order_meta_fields( $fields, $sent_to_admin, $order ) {
    $user_id = get_current_user_id();
    $key = 'billing_salesman';
    $single = true;

    $current_user_has_discount = get_user_meta($user_id, $key, $single);
    if( ! empty( $current_user_has_discount ) ){
    $fields['_billing_salesman'] = array(
        'label' => __( 'Sales Representative' ),
        'value' => $current_user_has_discount,
        'class' => array( 'salesRep' ),
    );
    }

    $is_po = get_post_meta( $order->id, '_other_payment-admin-note', true );
    if( ! empty( $is_po ) ){
        $fields['_other_payment-admin-note'] = array(
            'label' => __( 'PO Number' ),
            'value' => $is_po,
            'class' => array( 'poNum' ),
        );
    }

    return $fields;
}
add_filter( 'woocommerce_email_order_meta_fields', 'salesman_email_order_meta_fields', 11, 3 );

如何在自定义订单电子邮件元字段中添加类,和/或在电子邮件模板上设置样式?

php wordpress email woocommerce metadata
1个回答
1
投票

你应该使用钩在woocommerce_email_after_order_table动作钩子中的自定义函数,在那里你可以轻松地设置这个html数据的样式:

add_action( 'woocommerce_email_after_order_table', 'add_tracking_number_to_order_email', 10, 4 );
function add_tracking_number_to_order_email( $order, $sent_to_admin, $plain_text, $email )
{
    // (there is no current user ID for emails notifications)
    $has_discount = get_user_meta( $order->get_user_id(), 'billing_salesman', true );
    $po_number = get_post_meta( $order->get_id(), '_other_payment-admin-note', true );

    if( empty( $has_discount ) && empty( $po_number ) ) return; // Exit if empty

    // CSS style
    $styles = '<style>
        table.salesman-meta{width: 100%; font-family: \'Helvetica Neue\', Helvetica, Roboto, Arial, sans-serif;
            color: #737373; border: 1px solid #e4e4e4; margin-bottom:8px;}
        table.salesman-meta th, table.tracking-info td{text-align: left; border-top-width: 4px;
            color: #737373; border: 1px solid #e4e4e4; padding: 12px; width:50%;}
        table.salesman-meta td{text-align: left; border-top-width: 4px; color: #737373; border: 1px solid #e4e4e4; padding: 12px; width:50%;}
    </style>';

    // HTML Structure
    $html_output = '<h2>'.__('Some title').'</h2>
    <table class="salesman-meta" cellspacing="0" cellpadding="6">';

    if( ! empty( $has_discount ) ){
        $html_output .= '<tr class="sales-rep">
                <th>' . __( 'Sales Representative' ) . '</th>
                <td>' . $has_discount . '</td>
            </tr>';
    }

    if( ! empty( $po_number ) ){
        $html_output .= '<tr class="po-num">
                <th>' . __( 'PO Number' ) . '</th>
                <td>' . $po_number . '</td>
            </tr>';
    }

    $html_output .= '</table><br>'; // HTML (end)

    // Output styles CSS + HTML
    echo $styles . $html_output;
}

此代码位于活动子主题(或主题)的function.php文件中,或者也可以放在任何插件文件中。

经过测试和工作(带有静态值)......

© www.soinside.com 2019 - 2024. All rights reserved.