Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress Woocommerce可防止自定义表单字段被订单填满_Wordpress_Woocommerce_Checkout - Fatal编程技术网

Wordpress Woocommerce可防止自定义表单字段被订单填满

Wordpress Woocommerce可防止自定义表单字段被订单填满,wordpress,woocommerce,checkout,Wordpress,Woocommerce,Checkout,我在woocommerce结帐页面中添加了一些自定义结帐字段 其中一个仅用于在页面上提供检查,放置时不需要与订单一起记录 我将使用什么钩子来防止该字段被添加到后端订单编辑页面中的address\u flexible\u checkout\u fields值中 非常感谢只需直观地添加一个字段(也许还需要对其进行处理),但决不实际保存数据。基本上,本教程省略了保存步骤: 使用woocommerce\u-after\u-order\u-noteshook在结帐结束时添加一个字段: /** * Add

我在woocommerce结帐页面中添加了一些自定义结帐字段

其中一个仅用于在页面上提供检查,放置时不需要与订单一起记录

我将使用什么钩子来防止该字段被添加到后端订单编辑页面中的address\u flexible\u checkout\u fields值中


非常感谢

只需直观地添加一个字段(也许还需要对其进行处理),但决不实际保存数据。基本上,本教程省略了保存步骤:

使用
woocommerce\u-after\u-order\u-notes
hook在结帐结束时添加一个字段:

/**
 * Add the field to the checkout
 */
add_action( 'woocommerce_after_order_notes', 'my_custom_checkout_field' );

function my_custom_checkout_field( $checkout ) {

    echo '<div id="my_custom_checkout_field"><h2>' . __('My Field') . '</h2>';

    woocommerce_form_field( 'my_field_name', array(
        'type'          => 'text',
        'class'         => array('my-field-class form-row-wide'),
        'label'         => __('Fill in this field'),
        'placeholder'   => __('Enter something'),
        ), $checkout->get_value( 'my_field_name' ));

    echo '</div>';

}

如果这个答案对你有效,请将其标记为已接受,并可能进行投票。非常感谢-我已经准备好表单字段,并随订单一起发送,但我需要阻止它这样做。我认为问题是,它是通过Woocommerce Checkout Fields admin添加的,它似乎将所有其他字段合并在一起(我需要发送的3个字段中的2个)。看起来我必须尝试使用这里的流程添加这个,所以我将尝试检查它是否有效
/**
 * Process the checkout
 */
add_action('woocommerce_checkout_process', 'my_custom_checkout_field_process');

function my_custom_checkout_field_process() {
    // Check if set, if its not set add an error.
    if ( ! $_POST['my_field_name'] )
        wc_add_notice( __( 'Please enter something into this new shiny field.' ), 'error' );
}