t0r*_*t0r 4 php wordpress sanitization checkout woocommerce
遵循WooCommerce结帐字段自定义文档:
使用操作和过滤器自定义结帐字段
我已经通过functions.php向woocommerce结帐页面添加了一个自定义字段.
我担心是否必须清理该自定义字段的用户输入?
我认为它不需要清理,因为它被传递到计费字段,如:$ fields ['billing'],这是正确的吗?
如果不是,我该如何清理这个自定义字段?
创建此自定义字段意味着接受文本字符串(拉丁语)和长度不超过50的整数.
// Hook in
add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
// Our hooked in function - $fields is passed via the filter!
function custom_override_checkout_fields( $fields ) {
//Adding custom text field
$fields['billing']['billing_username'] = array(
'type' => 'text',
'label' => __('Your Username', 'woocommerce'),
'placeholder' => _x('', 'placeholder', 'woocommerce'),
'required' => true,
'class' => array('form-row-first'),
'clear' => true
);
return $fields;
}
Run Code Online (Sandbox Code Playgroud)
如果您查看问题中链接的相关官方文档,您就会得到以下代码段:
/**
* Update the order meta with field value
*/
add_action( 'woocommerce_checkout_update_order_meta', 'my_custom_checkout_field_update_order_meta' );
function my_custom_checkout_field_update_order_meta( $order_id ) {
if ( ! empty( $_POST['my_field_name'] ) ) {
update_post_meta( $order_id, 'My Field', sanitize_text_field( $_POST['my_field_name'] ) );
}
}
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您不需要,因为Woocommerce已经处理了地址字段.
对于自定义特殊字段:答案是肯定的 (这不是您的情况)
正如您在此代码中看到的那样
sanitize_text_field(),当使用函数将提交的数据保存到数据库时,他们使用WordPressupdate_post_meta()函数...这仅适用于自定义结帐字段,而不适用于已经获得自己流程的现有结帐字段 ...
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |