3

新規注文時にメールアドレスを設定しようとしています。そして、私はに保存しnew emailましたwp_postmeta

$order_id使用時の取得方法はwoocommerce_email_headers

order_id関数で使用するには、 を取得する必要がありget_post_meta()ます。

これが私のコードです:

function techie_custom_wooemail_headers( $headers, $object) {

    $email = get_post_meta( $order_id, '_approver_email', true );

    // Replace the emails below to your desire email
    $emails = array('eee@hotmail.com', $email);


    switch($object) {
        case 'new_order':
            $headers .= 'Bcc: ' . implode(',', $emails) . "\r\n";
            break;
        case 'customer_processing_order':
            $headers .= 'Bcc: ' . implode(',', $emails) . "\r\n";
            break;
        case 'customer_completed_order':
        case 'customer_invoice':
            $headers .= 'Bcc: ' . implode(',', $emails) . "\r\n";
            break;

        default:
    }

    return $headers;
}

add_filter( 'woocommerce_email_headers', 'techie_custom_wooemail_headers', 10, 2);

どうすればデータを取り戻すことができますか?

ありがとう。

4

2 に答える 2

1

WooCommerce バージョン 2.3 以降では、フィルターに渡されるパラメーターの数が変更されました。

function techie_custom_wooemail_headers( $headers, $id, $object) {

    $email = get_post_meta( $order_id, '_approver_email', true );

    // Replace the emails below to your desire email
    $emails = array('eee@hotmail.com', $email);


    switch($id) {
        case 'new_order':
            $headers .= 'Bcc: ' . implode(',', $emails) . "\r\n";
            break;
        case 'customer_processing_order':
            $headers .= 'Bcc: ' . implode(',', $emails) . "\r\n";
            break;
        case 'customer_completed_order':
        case 'customer_invoice':
            $headers .= 'Bcc: ' . implode(',', $emails) . "\r\n";
            break;

        default:
    }

    return $headers;
}

add_filter( 'woocommerce_email_headers', 'techie_custom_wooemail_headers', 10, 3);

$object- は、この電子メールが顧客、製品、または電子メールなどに対するものであることを示します。

var_dump($object); exit;フィルター コールバックの内部を試してください。

于 2016-09-28T05:44:42.633 に答える