从WooCommerce中我的帐户编辑地址中删除计费电话和电子邮件字段

时间:2018-10-27 16:02:11

标签: php wordpress woocommerce field account

我正试图从WooCommerce我的帐户编辑地址中删除电话号码和电子邮件,但是它不起作用。我只想在表格中显示不带电子邮件地址和电话号码的地址。我怎样才能做到这一点?

我尝试过的:

<div class="woocommerce-address-fields__field-wrapper">
    <?php
    unset( $address[$fields['billing_phone']] );
    foreach ( $address as $key => $field ) {
        if ( isset( $field['country_field'], $address[ $field['country_field'] ] ) ) {
            $field['country'] = wc_get_post_data_by_key( $field['country_field'], $address[ $field['country_field'] ]['value'] );
        }
        woocommerce_form_field( $key, $field, wc_get_post_data_by_key( $key, $field['value'] ) );
    }
    ?>
</div>

这直接来自form-edit-address.php文件。之所以将它放在我的孩子主题上,是因为我做了其他一些更改。因此,删除此PHP文件中的字段将是最佳解决方案。

由于电子邮件:我认为在提交表单时,我必须做一些事情来防止错误,因为那里是必填字段。但是不知道如何做到这一点。

1 个答案:

答案 0 :(得分:2)

以下代码功能将从我的帐户>修改地址中删除结算电话和电子邮件字段:

add_filter( 'woocommerce_billing_fields', 'remove_account_billing_phone_and_email_fields', 20, 1 );
function remove_account_billing_phone_and_email_fields( $billing_fields ) {
    // Only on my account 'edit-address'
    if( is_wc_endpoint_url( 'edit-address' ) ){
        unset($billing_fields['billing_phone']);
        unset($billing_fields['billing_email']);
    }
    return $billing_fields;
}

代码进入活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。