当前位置: 首页 > 知识库问答 >
问题:

清理WooCommerce中的自定义签出字段数据

丁德义
2023-03-14

遵循电子商务签出字段自定义文档:
使用操作和筛选器自定义签出字段

我已经通过函数向woocommerce结帐页面添加了一个自定义字段。php。

我担心是否必须清理自定义字段的用户输入?

我认为它不需要消毒,因为它被传递到帐单字段中,如:$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;
}

共有1个答案

令狐唯
2023-03-14

如果你查看问题中链接的相关官方文档,你会得到这个片段:

/**
 * 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'] ) );
    }
}

在您的情况下,您不需要它,因为地址字段已经由Woocommerce处理。

对于自定义特殊字段:答案是肯定的(这不是你的情况)

正如你在这段代码中看到的,他们使用sanitize_text_field()WordPress函数,当保存提交的数据到数据库与update_post_meta()函数...

这仅适用于自定义签出字段,而不适用于现有签出字段,这些字段已经拥有自己的流程…

 类似资料:
  • 我想在WooCommerce结帐页面中添加自定义字段,但用于选定的产品。 例如,如果客户的购物车中只有产品A,则此自定义字段应显示在WooCommerce签出页面中 我在函数中使用以下代码。php添加自定义字段:

  • 您好,我有一个关于woocommerce中自定义结账字段的问题。我在结帐表单中创建了一个自定义字段,一切都很顺利。该字段包含客户卡号。我还设法将字段值(第一次输入时)保存在wp usermeta中,这样它就不会只与订单一起出现,而是与客户详细信息一起保存。 现在我想做以下几点。一旦注册客户返回商店,进入结帐表单,新字段(如果不是empyt)将自动显示,而不是每次都要求客户插入他们的卡号。 我添加到

  • 在WooCommerce结帐表单中,我自定义了字段。但是,如果产品属于特定类别,我不希望显示这些字段。我让那部分工作。 接下来,我想取消设置一些自定义签出字段,但我不知道如何取消设置或现在取消设置。取消设置普通签出字段很容易,例如,我使用以下代码: 然而,对于自定义结帐字段它不起作用。下面是我如何设置这个自定义字段: 由于这属于它自己的部分,而不是账单、发货或其他字段,我找不到删除它的方法。 我尝

  • 但这给了我添加列中的“未定义变量”错误。 如果我只将放入函数中,它将“rechnung beilegen”输出到my_column_id_2中的每一行。像这样: 因此,问题是:如何根据中的选择将输出转换为?

  • 我在印度使用进行在线支付, 我想要一个像账单地址这样的自定义字段应该存储在razorpay帐户和结帐表中。我知道,它将自定义数据存储到razorpay帐户,但我没有得到任何链接来设置结帐表单中的这些字段。 我的代码: 所以,我的问题是,如何在razorpay结账表单中获取所有字段?

  • 我有问题添加自定义结账字段到订单管理(也许电子邮件,我还没有)。撇开编码问题不谈,我主要遵循https://www.kathyisawesome.com/woocommerce-customize-checkout-fields/-到目前为止,这是我的代码: http://pastebin.com/y8LDcDxS 假设购物车中有一种产品,我让它根据产品数量添加$fields['extra_fie