为什么我的“最小”和“最大”表格功能不起作用?

时间:2019-01-20 17:38:14

标签: php arrays forms max min

我制作了一个自定义表单,以显示在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无法通过。

2 个答案:

答案 0 :(得分:0)

通过不同的解决方案帮助自己解决问题:)

将此添加到“空字段检查功能”中:

handleRequest(x);

答案 1 :(得分:0)

根据woocommerce_form_field函数定义,maxmin属性必须作为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'部分。