【发布时间】:2025-12-13 23:05:03
【问题描述】:
我们有一个网站,用于处理随后交付的订单。现在的问题是,我们想利用“我的帐户地址帐单”中的详细信息作为要运送到的地址,在结帐时,我们希望从那里填充该地址,但不允许用户在该结帐页面帐单表格上进行任何更改。
这段代码:
add_action('woocommerce_checkout_fields','customization_readonly_billing_fields',10,1);
function customization_readonly_billing_fields($checkout_fields){
$current_user = wp_get_current_user();;
$user_id = $current_user->ID;
foreach ( $checkout_fields['billing'] as $key => $field ){
if($key == 'billing_address_1' || $key == 'billing_address_2'){
$key_value = get_user_meta($user_id, $key, true);
if( strlen($key_value)>0){
$checkout_fields['billing'][$key]['custom_attributes'] = array('readonly'=>'readonly');
}
}
}
return $checkout_fields;
}
仅使地址部分不被更改,但名字、姓氏、手机等其他所有内容都可以修改。
我们需要锁定所有这些字段,就像代码将地址字段锁定为只读一样。
【问题讨论】:
标签: php wordpress woocommerce checkout billing