Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-admin
/
wp-content
/
plugins
/
formidable-pro
/
classes
/
models
/
fields
:
FrmProFieldQuantity.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php if ( ! defined( 'ABSPATH' ) ) { die( 'You are not allowed to call this page directly.' ); } /** * @since 4.04 */ class FrmProFieldQuantity extends FrmProFieldNumber { protected $type = 'quantity'; protected function field_settings_for_type() { $settings = parent::field_settings_for_type(); $settings['unique'] = false; return $settings; } protected function extra_field_opts() { return array_merge( parent::extra_field_opts(), array( 'product_field' => array(), 'step' => '1', ) ); } protected function new_field_settings() { return array( 'default_value' => 1, ); } /** * @param array $args - Includes 'field', 'display', and 'values' */ public function show_primary_options( $args ) { $field = $args['field']; // cast to array cos of existing fields that are already using single product fields in production $field['product_field'] = $field['product_field'] ? (array) $field['product_field'] : array(); include( FrmProAppHelper::plugin_path() . '/classes/views/frmpro-fields/back-end/quantity-options.php' ); parent::show_primary_options( $args ); } protected function html5_input_type() { return 'number'; } public function validate( $args ) { global $frm_products; $parent_errors = parent::validate( $args ); if ( ! empty( $parent_errors ) ) { return $parent_errors; } if ( empty( $frm_products ) ) { $frm_products = array(); } $value = trim( $args['value'] ); $value = is_numeric( $value ) ? $value : 0; $product_fields = FrmField::get_option( $this->field, 'product_field' ); if ( ! empty( $product_fields ) ) { // cast to array cos of existing fields that are already using single product fields in production $product_fields = array_map( 'trim', (array) $product_fields ); foreach ( $product_fields as $product_field ) { $product_field_key = $product_field . '_' . $args['parent_field_id'] . '_' . $args['key_pointer']; if ( ! isset( $frm_products[ $product_field_key ] ) || ! is_array( $frm_products[ $product_field_key ] ) ) { $frm_products[ $product_field_key ] = array(); } $frm_products[ $product_field_key ]['quantity'] = $value; } } elseif ( ! empty( $args['parent_field_id'] ) ) { // get it ready for the corresponding product field in the row that will use it to calc total if ( ! isset( $frm_products['repeat_quantity_fields'] ) || ! is_array( $frm_products['repeat_quantity_fields'] ) ) { $frm_products['repeat_quantity_fields'] = array(); } $frm_products['repeat_quantity_fields'][ $args['parent_field_id'] . '_' . $args['key_pointer'] ] = $value; } else { // this quantity field is in the form but not in a repeater if ( ! isset( $frm_products['quantity_fields'] ) || ! is_array( $frm_products['quantity_fields'] ) ) { $frm_products['quantity_fields'] = array(); } $frm_products['quantity_fields'][] = $value; } return array(); } }