PluginProbe
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell / 3.13.3
WPFunnels – Funnel Builder for WooCommerce with Checkout & One Click Upsell v3.13.3
3.13.3 3.13.2 3.13.1 3.13.0 3.12.13 3.12.12 3.12.11 3.12.10 3.12.9 3.12.8 3.12.7 3.12.6 3.12.5 3.12.4 3.12.3 3.12.1 3.12.2 3.12.0 3.11.1 3.11.0 3.10.9 3.10.8 3.10.7 3.10.6 2.8.16 All 261 releases
← 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