← All changes
|
includes/core/rest-api/Controllers/class-settings-controller.php
+41
-42
3.12.10
→
3.13.3
View file →
| @@ -151,12 +151,12 @@ | ||
| 151 | 151 | ) |
| 152 | 152 | ); |
| 153 | 153 | |
| 154 | 154 | register_rest_route( |
| 155 | - $this->namespace, '/' . $this->rest_funnel_settings . '/update-funnel-type' , array( | |
| 155 | + $this->namespace, '/' . $this->rest_funnel_settings . '/update-builder-type' , array( | |
| 156 | 156 | array( |
| 157 | 157 | 'methods' => 'POST', |
| 158 | - 'callback' => array( $this, 'update_funnel_type' ), | |
| 158 | + 'callback' => array( $this, 'update_builder_type' ), | |
| 159 | 159 | 'permission_callback' => array( $this, 'update_items_permissions_check' ), |
| 160 | 160 | 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ), |
| 161 | 161 | ) |
| 162 | 162 | ) |
| @@ -162,12 +162,12 @@ | ||
| 162 | 162 | ) |
| 163 | 163 | ); |
| 164 | 164 | |
| 165 | 165 | register_rest_route( |
| 166 | - $this->namespace, '/' . $this->rest_funnel_settings . '/update-builder-type' , array( | |
| 166 | + $this->namespace, '/' . $this->rest_funnel_settings . '/get-funnel-type-id/(?P<funnel_id>[\w-]+)' , array( | |
| 167 | 167 | array( |
| 168 | - 'methods' => 'POST', | |
| 169 | - 'callback' => array( $this, 'update_builder_type' ), | |
| 168 | + 'methods' => 'GET', | |
| 169 | + 'callback' => array( $this, 'get_funnel_type_id' ), | |
| 170 | 170 | 'permission_callback' => array( $this, 'update_items_permissions_check' ), |
| 171 | 171 | 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ), |
| 172 | 172 | ) |
| 173 | 173 | ) |
| @@ -173,12 +173,12 @@ | ||
| 173 | 173 | ) |
| 174 | 174 | ); |
| 175 | 175 | |
| 176 | 176 | register_rest_route( |
| 177 | - $this->namespace, '/' . $this->rest_funnel_settings . '/get-funnel-type-id/(?P<funnel_id>[\w-]+)' , array( | |
| 177 | + $this->namespace, '/' . $this->rest_funnel_settings . '/canvas-view-mode' , array( | |
| 178 | 178 | array( |
| 179 | - 'methods' => 'GET', | |
| 180 | - 'callback' => array( $this, 'get_funnel_type_id' ), | |
| 179 | + 'methods' => 'POST', | |
| 180 | + 'callback' => array( $this, 'update_canvas_view_mode' ), | |
| 181 | 181 | 'permission_callback' => array( $this, 'update_items_permissions_check' ), |
| 182 | 182 | 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ), |
| 183 | 183 | ) |
| 184 | 184 | ) |
| @@ -470,14 +470,10 @@ | ||
| 470 | 470 | $settings = Wpfnl_functions::get_admin_settings( '_wpfunnels_permalink_settings', $default); |
| 471 | 471 | } elseif( $request['settings_id'] === 'optin') { |
| 472 | 472 | $default = Wpfnl_functions::get_optin_settings(); |
| 473 | 473 | $settings = Wpfnl_functions::get_admin_settings( '_wpfunnels_optin_settings', $default); |
| 474 | - } elseif ($request['settings_id'] === 'funnel_type') { | |
| 474 | + } else { | |
| 475 | 475 | $default = Wpfnl_functions::get_general_settings(); |
| 476 | - $settings = Wpfnl_functions::get_admin_settings( $request['group_id'], $default); | |
| 477 | - } | |
| 478 | - else { | |
| 479 | - $default = Wpfnl_functions::get_general_settings(); | |
| 480 | 476 | $settings = Wpfnl_functions::get_admin_settings( $request['group_id'], $default ); |
| 481 | 477 | } |
| 482 | 478 | |
| 483 | 479 | if ( !$settings ) { |
| @@ -498,14 +494,9 @@ | ||
| 498 | 494 | Wpfnl_functions::update_admin_settings('_wpfunnels_permalink_saved', true); |
| 499 | 495 | Wpfnl_functions::update_admin_settings($request['group_id'], $settings); |
| 500 | 496 | |
| 501 | 497 | }else { |
| 502 | - if( 'funnel_type' === $request['settings_id'] ) { | |
| 503 | - $general_settings = get_option( '_wpfunnels_general_settings' ); | |
| 504 | - $settings[$request['settings_id']] = isset($general_settings['funnel_type']) ? $general_settings['funnel_type'] : 'sales'; | |
| 505 | - }else{ | |
| 506 | - $settings[$request['settings_id']] = $request['value']; | |
| 507 | - } | |
| 498 | + $settings[$request['settings_id']] = $request['value']; | |
| 508 | 499 | |
| 509 | 500 | Wpfnl_functions::update_admin_settings($request['group_id'], $settings); |
| 510 | 501 | |
| 511 | 502 | } |
| @@ -543,9 +534,9 @@ | ||
| 543 | 534 | } |
| 544 | 535 | |
| 545 | 536 | |
| 546 | 537 | /** |
| 547 | - * Update funnel type | |
| 538 | + * Update funnel builder | |
| 548 | 539 | * |
| 549 | 540 | * @param Array $request |
| 550 | 541 | * |
| 551 | 542 | * @return Array |
| @@ -550,18 +541,18 @@ | ||
| 550 | 541 | * |
| 551 | 542 | * @return Array |
| 552 | 543 | * @since 2.5.3 |
| 553 | 544 | */ |
| 554 | - public function update_funnel_type( $request ){ | |
| 545 | + public function update_builder_type( $request ){ | |
| 555 | 546 | |
| 556 | 547 | $response = [ |
| 557 | 548 | 'success' => false, |
| 558 | 549 | ]; |
| 559 | 550 | |
| 560 | - if( $request['type'] ){ | |
| 561 | - $type = $request['type']; | |
| 551 | + if( $request['builder'] ){ | |
| 552 | + $builder = $request['builder']; | |
| 562 | 553 | $general_settings = get_option( '_wpfunnels_general_settings' ); |
| 563 | - $general_settings['funnel_type'] = $type; | |
| 554 | + $general_settings['builder'] = $builder; | |
| 564 | 555 | update_option('_wpfunnels_general_settings', $general_settings ); |
| 565 | 556 | $response = [ |
| 566 | 557 | 'success' => true, |
| 567 | 558 | ]; |
| @@ -570,31 +561,39 @@ | ||
| 570 | 561 | } |
| 571 | 562 | |
| 572 | 563 | |
| 573 | 564 | /** |
| 574 | - * Update funnel builder | |
| 565 | + * Remember which canvas layout the current user last switched to. | |
| 575 | 566 | * |
| 576 | - * @param Array $request | |
| 567 | + * Stored per user rather than in the shared settings, so one admin flipping | |
| 568 | + * the view switcher does not change the canvas for the rest of the team. The | |
| 569 | + * site-wide default in Settings still applies to anyone who never switched. | |
| 577 | 570 | * |
| 578 | - * @return Array | |
| 579 | - * @since 2.5.3 | |
| 571 | + * @param WP_REST_Request $request The REST request object. | |
| 572 | + * | |
| 573 | + * @return WP_REST_Response | |
| 574 | + * @since 3.12.13 | |
| 580 | 575 | */ |
| 581 | - public function update_builder_type( $request ){ | |
| 576 | + public function update_canvas_view_mode( $request ) { | |
| 577 | + $mode = isset( $request['mode'] ) ? sanitize_text_field( $request['mode'] ) : ''; | |
| 578 | + $user_id = get_current_user_id(); | |
| 582 | 579 | |
| 583 | - $response = [ | |
| 584 | - 'success' => false, | |
| 585 | - ]; | |
| 580 | + if ( ! $user_id || ! in_array( $mode, Wpfnl_functions::get_funnel_builder_modes(), true ) ) { | |
| 581 | + return rest_ensure_response( array( 'success' => false ) ); | |
| 582 | + } | |
| 586 | 583 | |
| 587 | - if( $request['builder'] ){ | |
| 588 | - $builder = $request['builder']; | |
| 589 | - $general_settings = get_option( '_wpfunnels_general_settings' ); | |
| 590 | - $general_settings['builder'] = $builder; | |
| 591 | - update_option('_wpfunnels_general_settings', $general_settings ); | |
| 592 | - $response = [ | |
| 584 | + update_user_meta( $user_id, Wpfnl_functions::CANVAS_VIEW_MODE_META_KEY, $mode ); | |
| 585 | + | |
| 586 | + if ( 'vertical' === $mode ) { | |
| 587 | + do_action( 'wpfunnels_vertical_mode_used' ); | |
| 588 | + } | |
| 589 | + | |
| 590 | + return rest_ensure_response( | |
| 591 | + array( | |
| 593 | 592 | 'success' => true, |
| 594 | - ]; | |
| 595 | - } | |
| 596 | - return rest_ensure_response( $response ); | |
| 593 | + 'mode' => $mode, | |
| 594 | + ) | |
| 595 | + ); | |
| 597 | 596 | } |
| 598 | 597 | |
| 599 | 598 | |
| 600 | 599 | /** |
| @@ -635,9 +634,9 @@ | ||
| 635 | 634 | if( !isset( $request['name'],$request['value'] )){ |
| 636 | 635 | rest_ensure_response( $response ); |
| 637 | 636 | } |
| 638 | 637 | |
| 639 | - if( 'builder' === $request['name'] || 'funnel_type' === $request['name'] ){ | |
| 638 | + if( 'builder' === $request['name'] ){ | |
| 640 | 639 | // Get and process the value using the appropriate method. |
| 641 | 640 | $name = sanitize_text_field($request['name']); |
| 642 | 641 | $value = sanitize_text_field($request['value']); |
| 643 | 642 | |