我制作了一个自定义表单,以显示在Wordpress Woocommerce结帐页面中,在该页面中,用户必须选择年龄才能进行购买。
这个想法是为了让18岁以下的人无法购买。
当前,代码显示了表单并且已全部设置,但是出于某些原因,我需要将“年龄”和“最大”功能限制在18到99岁之间,因此无法使用。 我需要什么才能使“最小”和“最大”功能生效?
add_action('woocommerce_after_order_notes', 'custom_checkout_field');
function custom_checkout_field($checkout)
{
echo '<div id="custom_checkout_field"><h3>' . __('Vanusepiirang') . '</h3>';
woocommerce_form_field('custom_field_name', array(
'type' => 'number',
'id' => 'vanusepiirang',
'name' => 'vanusepiirang',
'min' => 18,
'max' => 99,
'required' => 1,
'class' => array(
'my-field-class form-row-wide'
),
'label' => __('Sisestage enda vanus. Teie sünnipäeva küsime kinnituseks, et olete piisavalt vana ostukorvis olevate toodete ostmiseks.') ,
'placeholder' => __('Teie vanus') ,
),
$checkout->get_value('custom_field_name'));
echo '</div>';
}
我希望表单上应用“最小”和“最大”功能,以使数字1-17无法通过。
答案 0 :(得分:0)
通过不同的解决方案帮助自己解决问题:)
将此添加到“空字段检查功能”中:
handleRequest(x);
答案 1 :(得分:0)
根据woocommerce_form_field函数定义,max
和min
属性必须作为custom_attribute传递。您必须对最终代码进行如下修改:
add_action('woocommerce_after_order_notes', 'custom_checkout_field');
function custom_checkout_field($checkout)
{
echo '<div id="custom_checkout_field"><h3>' . __('Vanusepiirang') . '</h3>';
woocommerce_form_field('custom_field_name', array(
'type' => 'number',
'id' => 'vanusepiirang',
'name' => 'vanusepiirang',
'custom_attributes' => array(
'min' => 18,
'max' => 99,
),
'required' => 1,
'class' => array(
'my-field-class form-row-wide'
),
'label' => __('Sisestage enda vanus. Teie sünnipäeva küsime kinnituseks, et olete piisavalt vana ostukorvis olevate toodete ostmiseks.') ,
'placeholder' => __('Teie vanus') ,
),
$checkout->get_value('custom_field_name'));
echo '</div>';
}
此外,您应该考虑woocommerce_form_field
函数的第一个参数是字段名称和ID,除非您在第二个参数中分别传递ID参数。这意味着,由于生成了'name' => 'vanusepiirang'
键值,输入html将包含两个不同的name属性。我建议从您的源代码中删除'name' => 'vanusepiirang'
部分。