PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / trunk
JetFormBuilder — Dynamic Blocks Form Builder vtrunk
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / generators / num-range.php
jetformbuilder / includes / generators Last commit date
base-v2.php 2 months ago base.php 2 years ago get-from-db.php 1 day ago get-from-rest-api.php 2 months ago get-from-users.php 1 day ago get-related-posts.php 2 months ago legacy-parser.php 2 months ago num-range-manual.php 2 months ago num-range.php 2 months ago registry.php 1 day ago
num-range.php
111 lines
1 <?php
2 /**
3 * Numbers Range by Meta Value Generator with schema support.
4 *
5 * @package Jet_Form_Builder\Generators
6 */
7
8 namespace Jet_Form_Builder\Generators;
9
10 // If this file is called directly, abort.
11 if ( ! defined( 'WPINC' ) ) {
12 die;
13 }
14
15 /**
16 * Num_Range class.
17 *
18 * Generates a list of numbers from 1 to the value stored in a post meta field.
19 */
20 class Num_Range extends Base_V2 {
21
22 /**
23 * Returns generator ID.
24 *
25 * @return string
26 */
27 public function get_id() {
28 return 'num_range';
29 }
30
31 /**
32 * Returns generator name.
33 *
34 * @return string
35 */
36 public function get_name() {
37 return __( 'Numbers range by meta value', 'jet-form-builder' );
38 }
39
40 /**
41 * Returns structured settings schema.
42 *
43 * @return array
44 */
45 public function get_settings_schema(): array {
46 return array(
47 'meta_key' => array(
48 'type' => 'string',
49 'default' => '',
50 'label' => __( 'Meta Key', 'jet-form-builder' ),
51 'control' => 'text',
52 'placeholder' => '_max_quantity',
53 'help' => __( 'Enter the meta key containing the maximum number for the range.', 'jet-form-builder' ),
54 ),
55 );
56 }
57
58 /**
59 * Returns generated options list.
60 *
61 * @param array|string $args Settings array or legacy string.
62 *
63 * @return array
64 */
65 public function generate( $args ) {
66 $result = array();
67
68 // Handle both new array format and legacy string/array format
69 if ( is_string( $args ) ) {
70 $meta_key = $args;
71 } elseif ( is_array( $args ) ) {
72 // New schema format
73 $meta_key = $args['meta_key'] ?? '';
74
75 // Legacy format support
76 if ( empty( $meta_key ) && ! empty( $args['generator_field'] ) ) {
77 $meta_key = $args['generator_field'];
78 }
79 } else {
80 return $result;
81 }
82
83 if ( empty( $meta_key ) ) {
84 return $result;
85 }
86
87 $meta_value = get_post_meta( get_the_ID(), $meta_key, true );
88 $meta_value = absint( $meta_value );
89
90 if ( ! $meta_value ) {
91 return $result;
92 }
93
94 $start = apply_filters(
95 'jet-form-builder/forms/generators/num-range/start-from',
96 1,
97 $args,
98 $meta_value
99 );
100
101 for ( $i = $start; $i <= $meta_value; $i++ ) {
102 $result[] = array(
103 'value' => $i,
104 'label' => $i,
105 );
106 }
107
108 return $result;
109 }
110 }
111