我想编辑WooCommerce结帐页面的帐单邮寄地址。我想编辑我的结帐页面的结算状态。我尝试在我的孩子主题中首先进行编辑。
然后我尝试编辑class-wc-checkout.php文件:
// Billing address
$billing_address = array();
if ( $this->checkout_fields['billing'] ) {
foreach ( array_keys( $this->checkout_fields['billing'] ) as $field ) {
$field_name = str_replace( 'billing_', '', $field );
$billing_address[ $field_name ] = $this->get_posted_address_data( $field_name );
}
}
没有成功。我怎么能这样做?
感谢。
答案 0 :(得分:1)
重要建议:切勿触及WooCommerce插件核心文件,避免:
- 重要错误
- 丢失更新插件时所做的更改
要自定义WooCommerce ,您可以:
- Overriding Templates via a Theme (将模板复制到您的活动主题)。
- Use actions and filters hooks (在您的有效主题的function.php文件中)。
要编辑/创建/删除/重新排序结帐字段,我们可以使用这2个过滤器挂钩:
'woocommerce_checkout_fields'
或在特定情况下,您需要使用
'woocommerce_default_address_fields'
(适用于以下所有结算和发货默认字段) 此处是结算和发货默认字段列表:
country
first_name
last_name
company
address_1
address_2
city
state
postcode
例如,要使 'billing_state'
字段成为必需字段:
add_filter( 'woocommerce_default_address_fields' , 'custom_override_default_address_fields' );
function custom_override_default_address_fields( $address_fields ) {
// we are changing here billing_state field to required
$address_fields['billing']['billing_state']['required'] = true;
return $address_fields;
}
每个字段都包含一系列可以编辑的属性:
type – type of field (text, textarea, password, select)
label – label for the input field
placeholder – placeholder for the input
class – class for the input
required – true or false, whether or not the field is require
clear – true or false, applies a clear fix to the field/label
label_class – class for the label element
options – for select boxes, array of options (key => value pairs)
结帐字段分为4组:
参考文献: