Php 将计费字段值设置为等于其他计费字段值

Php 将计费字段值设置为等于其他计费字段值,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我希望帐单字段“公司电子邮件”等于帐单电子邮件地址 我原以为这样行得通,但我只得到一个空字段: add_filter( 'woocommerce_admin_billing_fields', 'custom_admin_billing_fields', 10, 1 ); function custom_admin_billing_fields( $billing_fields ) { $billing_fields['tlr_company_email']['value'

我希望帐单字段“公司电子邮件”等于帐单电子邮件地址

我原以为这样行得通,但我只得到一个空字段:

add_filter( 'woocommerce_admin_billing_fields', 'custom_admin_billing_fields', 10, 1 );
    function custom_admin_billing_fields( $billing_fields ) {
        $billing_fields['tlr_company_email']['value'] = $billing_fields['email']['value'];
        return $billing_fields;
    }

我认为正确的方法是在付款完成后,在结帐后进行更新。以下代码连接到支付完成触发器。它会将账单电子邮件复制到自定义公司账单电子邮件

add_action('woocommerce_payment_complete', 'replicate_billing_email', 100, 1);

function replicate_billing_email($order_id){
    $order = new WC_Order($order_id); //obatin the completed order as object
    $billing_email = $order->get_billing_email(); //get the billing email address
    update_post_meta($order_id, 'tlr_company_email', $billing_email); //update the company email
    update_post_meta($order_id, '_tlr_company_email', $billing_email); //it maybe saved like that, with underscore, ommit if not needed
}

要测试它,请完成测试订单。

需要更多背景资料。1) 你希望它什么时候相等?在签出页面上还是仅在管理页面上?2) 您是如何创建公司电子邮件地址的,您可以共享代码吗?3) 是否希望每次保存账单地址时都覆盖该字段?该字段由插件“Teamleader for Woocommerce”生成,该插件将订单数据发送给Teamleader以制作发票。通过正常结帐过程下订单时,将填写已填写的字段。空字段必须与填写的字段相同,这就是我希望字段相等的原因(公司电子邮件=电子邮件地址,公司电话=传真,公司地址=电子邮件地址1,…)。因为现在你只需要复制所有东西,我希望它能自动完成。对你的代码做一些修改,它就可以工作了,谢谢!我仍然需要获取使用插件Woocommerce checkout manager生成的自定义字段的值。此字段显示在订单编辑页面上的“账单详细信息”下,因此它不是输入字段。我无法以与其他输入字段相同的方式获取值。你知道我怎样才能得到它的价值吗?