پاسخ به : تعیین شرط حداقل و حداکثر سفارش

سایت Gravity Forms فارسی انجمن‌ها پرسش و پاسخ تعیین شرط حداقل و حداکثر سفارش پاسخ به : تعیین شرط حداقل و حداکثر سفارش

djbagoor در: پنجشنبه ۱۴ خرداد ۱۳۹۴ در ۰:۵۰ ق٫ظ #4828

ای پیرشی جوون دستت درد نکنه 🙂
ولی خوب هی ارور گرفت رو سایت ما اینه که با گِرای شما بُرجکشو زدیم به این صورت که :

https://www.gravityhelp.com/documentation/article/gform_field_validation/

Price field validation:

add_filter( 'gform_field_validation_3_2', 'custom_validation', 10, 4 );
function custom_validation( $result, $value, $form, $field ) {
    //change value for price field to just be numeric (strips off currency symbol, etc.) using Gravity Forms to_number function
    //the second parameter to to_number is the currency code, ie "USD", if not specified USD is used
    $number = GFCommon::to_number( $value, '' );

    if ( $result['is_valid'] && intval( $number ) < 180000 ) {
        $result['is_valid'] = false;
        $result['message'] = 'You must enter at least $3,000.';
    }
    return $result;
}

و تازه اینم پیدا کردم که اگه بخوام حداقل تعداد سفارش رو تعیین کنم باید چیکار کنم :
http://gravitywiz.com/set-a-minimum-order-quantity/

Set a Minimum Order Quantity

add_filter('gform_validation_86', 'gform_validate_minimum_quantity');
function gform_validate_minimum_quantity($validation_result) {
    
    $min_qty = 20;
    $min_qty_message = 'You must order a minimum of %1$d tickets. Order %2$d more tickets to complete your order.';
    $min_qty_fields = array();
    
    /* no need to edit below this line */
    
    $form = $validation_result['form'];
    $quantity = 0;
    $qty_fields = array();
    
    foreach($form['fields'] as &$field) {
        
        // if $min_qty_fields specified, make sure only applicable quantity fields are totaled
        if(!empty($min_qty_fields) && !in_array($field['id'], $min_qty_fields))
            continue;
        
        if(in_array(RGFormsModel::get_input_type($field), array('singleproduct', 'calculation'))) {
            
            // check if product field has separate quantity field, if so skip
            if(sizeof(GFCommon::get_product_fields_by_type($form, array("quantity"), $field['id'])) > 0)
                continue;
                
            $quantity += GFCommon::clean_number(rgpost("input_{$field['id']}_3"));
            $qty_fields[] =& $field;
            
        } else if($field['type'] == 'quantity') {
            $quantity += GFCommon::clean_number(rgpost("input_{$field['id']}"));
            $qty_fields[] =& $field;
        }
        
    }
    
    if($quantity >= $min_qty)
        return $validation_result;
    
    for($i = 0; $i < count($qty_fields); $i++) {
        $qty_fields[$i]['failed_validation'] = true;
        $qty_fields[$i]['validation_message'] = sprintf($min_qty_message, $min_qty, $min_qty - $quantity);
    }
    
    $validation_result['is_valid'] = false;
    $validation_result['form'] = $form;
    
    return $validation_result;
}