admin
3 years ago
constraints
3 years ago
models
3 years ago
query-views
3 years ago
rest-endpoints
3 years ago
controller.php
3 years ago
records-rest-controller.php
3 years ago
tools.php
3 years ago
tools.php
64 lines
| 1 | <?php |
| 2 | |
| 3 | |
| 4 | namespace Jet_Form_Builder\Actions\Methods\Form_Record; |
| 5 | |
| 6 | |
| 7 | use Jet_Form_Builder\Actions\Methods\Form_Record\Query_Views\Record_Fields_View; |
| 8 | use Jet_Form_Builder\Classes\Tools as GlobalTools; |
| 9 | use Jet_Form_Builder\Db_Queries\Exceptions\Sql_Exception; |
| 10 | use Jet_Form_Builder\Dev_Mode\Manager; |
| 11 | |
| 12 | class Tools { |
| 13 | |
| 14 | public static function apply_record( array $record ): array { |
| 15 | $request = Record_Fields_View::get_request( $record['id'] ?? 0 ); |
| 16 | |
| 17 | self::parse_values( $request ); |
| 18 | |
| 19 | $values = wp_list_pluck( $request, 'field_value', 'field_name' ); |
| 20 | |
| 21 | // apply actions |
| 22 | jet_fb_action_handler()->set_form_id( $record['form_id'] ?? 0 ); |
| 23 | |
| 24 | jet_fb_action_handler()->add_request( $values ); |
| 25 | jet_fb_request_handler()->set_request_type( |
| 26 | wp_list_pluck( $request, 'field_type', 'field_name' ) |
| 27 | ); |
| 28 | jet_fb_request_handler()->set_request_attrs( |
| 29 | wp_list_pluck( $request, 'field_attrs', 'field_name' ) |
| 30 | ); |
| 31 | jet_fb_handler()->set_referrer( $record['referrer'] ?? '' ); |
| 32 | |
| 33 | return $values; |
| 34 | } |
| 35 | |
| 36 | public static function parse_values( array &$request ) { |
| 37 | foreach ( $request as &$field ) { |
| 38 | $field['field_attrs'] = GlobalTools::decode_json( $field['field_attrs'] ); |
| 39 | |
| 40 | if ( empty( $field['field_attrs']['is_encoded'] ) ) { |
| 41 | continue; |
| 42 | } |
| 43 | |
| 44 | $field['field_value'] = GlobalTools::decode_json( $field['field_value'] ); |
| 45 | } |
| 46 | } |
| 47 | |
| 48 | /** |
| 49 | * @param int $record_id |
| 50 | * |
| 51 | * @throws Sql_Exception |
| 52 | */ |
| 53 | public static function update_record( int $record_id ) { |
| 54 | if ( ! $record_id ) { |
| 55 | return; |
| 56 | } |
| 57 | $controller = ( new Controller() )->set_record_id( $record_id ); |
| 58 | $controller->set_setting( 'save_errors', Manager::instance()->active() ); |
| 59 | |
| 60 | $controller->save_actions(); |
| 61 | $controller->save_errors(); |
| 62 | } |
| 63 | |
| 64 | } |