| @@ -14,13 +14,13 @@ | ||
| 14 | 14 | add_submenu_page( 'formidable', 'Formidable | ' . __( 'Entries', 'formidable' ), __( 'Entries', 'formidable' ), 'frm_view_entries', 'formidable-entries', 'FrmEntriesController::route' ); // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong |
| 15 | 15 | |
| 16 | 16 | $views_installed = is_callable( 'FrmProAppHelper::views_is_installed' ) && FrmProAppHelper::views_is_installed(); |
| 17 | 17 | |
| 18 | - if ( ! $views_installed ) { | |
| 18 | + if ( $views_installed ) { | |
| 19 | + self::maybe_redirect_to_views_index(); | |
| 20 | + } else { | |
| 19 | 21 | add_submenu_page( 'formidable', 'Formidable | ' . __( 'Views', 'formidable' ), __( 'Views', 'formidable' ), 'frm_view_entries', 'formidable-views', 'FrmFormsController::no_views' ); // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong |
| 20 | 22 | self::maybe_redirect_to_views_upsell(); |
| 21 | - } else { | |
| 22 | - self::maybe_redirect_to_views_index(); | |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | if ( FrmAppHelper::is_admin_page( 'formidable-entries' ) ) { |
| 26 | 26 | self::load_manage_entries_hooks(); |
| @@ -99,18 +99,19 @@ | ||
| 99 | 99 | * |
| 100 | 100 | * @return void |
| 101 | 101 | */ |
| 102 | 102 | private static function load_manage_entries_hooks() { |
| 103 | - if ( ! in_array( FrmAppHelper::simple_get( 'frm_action', 'sanitize_title' ), array( 'edit', 'show', 'new', 'duplicate' ), true ) ) { | |
| 104 | - $menu_name = FrmAppHelper::get_menu_name(); | |
| 105 | - $base = self::base_column_key( $menu_name ); | |
| 106 | - | |
| 107 | - add_filter( 'manage_' . $base . '_columns', 'FrmEntriesController::manage_columns' ); | |
| 108 | - add_filter( 'get_user_option_' . self::hidden_column_key( $menu_name ), 'FrmEntriesController::hidden_columns' ); | |
| 109 | - add_filter( 'manage_' . $base . '_sortable_columns', 'FrmEntriesController::sortable_columns' ); | |
| 110 | - } else { | |
| 103 | + if ( in_array( FrmAppHelper::simple_get( 'frm_action', 'sanitize_title' ), array( 'edit', 'show', 'new', 'duplicate' ), true ) ) { | |
| 111 | 104 | add_filter( 'screen_options_show_screen', self::class . '::remove_screen_options', 10, 2 ); |
| 105 | + return; | |
| 112 | 106 | } |
| 107 | + | |
| 108 | + $menu_name = FrmAppHelper::get_menu_name(); | |
| 109 | + $base = self::base_column_key( $menu_name ); | |
| 110 | + | |
| 111 | + add_filter( 'manage_' . $base . '_columns', 'FrmEntriesController::manage_columns' ); | |
| 112 | + add_filter( 'get_user_option_' . self::hidden_column_key( $menu_name ), 'FrmEntriesController::hidden_columns' ); | |
| 113 | + add_filter( 'manage_' . $base . '_sortable_columns', 'FrmEntriesController::sortable_columns' ); | |
| 113 | 114 | } |
| 114 | 115 | |
| 115 | 116 | /** |
| 116 | 117 | * Display in Back End. |
| @@ -180,10 +181,10 @@ | ||
| 180 | 181 | $columns[ $form_id . '_user_id' ] = esc_html__( 'Created By', 'formidable' ); |
| 181 | 182 | } |
| 182 | 183 | |
| 183 | 184 | $columns[ $form_id . '_is_draft' ] = esc_html__( 'Entry Status', 'formidable' ); |
| 184 | - $columns[ $form_id . '_created_at' ] = __( 'Entry creation date', 'formidable' ); | |
| 185 | - $columns[ $form_id . '_updated_at' ] = __( 'Entry update date', 'formidable' ); | |
| 185 | + $columns[ $form_id . '_created_at' ] = esc_html__( 'Entry creation date', 'formidable' ); | |
| 186 | + $columns[ $form_id . '_updated_at' ] = esc_html__( 'Entry update date', 'formidable' ); | |
| 186 | 187 | self::maybe_add_ip_col( $form_id, $columns ); |
| 187 | 188 | |
| 188 | 189 | $frm_vars['cols'] = $columns; |
| 189 | 190 | $action = FrmAppHelper::simple_get( 'frm_action', 'sanitize_title' ); |
| @@ -303,9 +304,9 @@ | ||
| 303 | 304 | */ |
| 304 | 305 | private static function maybe_format_field_name_for_column_title( $field, $include_column_for_sep_val, $is_value = true ) { |
| 305 | 306 | $field_name = FrmAppHelper::truncate( $field->name, 35 ); |
| 306 | 307 | |
| 307 | - if ( ! $include_column_for_sep_val || ! in_array( $field->type, array( 'select', 'radio', 'checkbox' ), true ) ) { | |
| 308 | + if ( ! $include_column_for_sep_val || ! in_array( $field->type, array( 'select', 'radio', 'checkbox', 'product', 'ranking' ), true ) ) { | |
| 308 | 309 | return $field_name; |
| 309 | 310 | } |
| 310 | 311 | |
| 311 | 312 | $append_text = $is_value ? esc_html__( 'value', 'formidable' ) : esc_html__( 'label', 'formidable' ); |
| @@ -413,10 +414,9 @@ | ||
| 413 | 414 | if ( ! $save ) { |
| 414 | 415 | return; |
| 415 | 416 | } |
| 416 | 417 | |
| 417 | - $user_id = get_current_user_id(); | |
| 418 | - update_user_option( $user_id, $this_page_name, $meta_value, true ); | |
| 418 | + update_user_option( get_current_user_id(), $this_page_name, $meta_value, true ); | |
| 419 | 419 | } |
| 420 | 420 | |
| 421 | 421 | /** |
| 422 | 422 | * @since 2.05.07 |
| @@ -551,17 +551,19 @@ | ||
| 551 | 551 | private static function user_hidden_columns_for_form( $form_id, $result ) { |
| 552 | 552 | $hidden = array(); |
| 553 | 553 | |
| 554 | 554 | foreach ( (array) $result as $r ) { |
| 555 | - if ( $r ) { | |
| 556 | - list( $form_prefix, $field_key ) = explode( '_', $r ); | |
| 555 | + if ( ! $r ) { | |
| 556 | + continue; | |
| 557 | + } | |
| 557 | 558 | |
| 558 | - if ( (int) $form_prefix === (int) $form_id ) { | |
| 559 | - $hidden[] = $r; | |
| 560 | - } | |
| 559 | + list( $form_prefix, $field_key ) = explode( '_', $r ); | |
| 561 | 560 | |
| 562 | - unset( $form_prefix ); | |
| 561 | + if ( (int) $form_prefix === (int) $form_id ) { | |
| 562 | + $hidden[] = $r; | |
| 563 | 563 | } |
| 564 | + | |
| 565 | + unset( $form_prefix ); | |
| 564 | 566 | } |
| 565 | 567 | |
| 566 | 568 | return $hidden; |
| 567 | 569 | } |
| @@ -652,15 +654,17 @@ | ||
| 652 | 654 | * |
| 653 | 655 | * @return void |
| 654 | 656 | */ |
| 655 | 657 | private static function get_delete_form_time( $form, &$errors ) { |
| 656 | - if ( 'trash' === $form->status ) { | |
| 657 | - $delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS ); | |
| 658 | - $time_to_delete = FrmAppHelper::human_time_diff( $delete_timestamp, $form->options['trash_time'] ?? time() ); | |
| 658 | + if ( 'trash' !== $form->status ) { | |
| 659 | + return; | |
| 660 | + } | |
| 659 | 661 | |
| 660 | - /* translators: %1$s: Time string */ | |
| 661 | - $errors['trash'] = sprintf( __( 'This form is in the trash and is scheduled to be deleted permanently in %s along with any entries.', 'formidable' ), $time_to_delete ); | |
| 662 | - } | |
| 662 | + $delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS ); | |
| 663 | + $time_to_delete = FrmAppHelper::human_time_diff( $delete_timestamp, $form->options['trash_time'] ?? time() ); | |
| 664 | + | |
| 665 | + /* translators: %1$s: Time string */ | |
| 666 | + $errors['trash'] = sprintf( __( 'This form is in the trash and is scheduled to be deleted permanently in %s along with any entries.', 'formidable' ), $time_to_delete ); | |
| 663 | 667 | } |
| 664 | 668 | |
| 665 | 669 | /** |
| 666 | 670 | * Back End CRUD. |
| @@ -798,15 +802,13 @@ | ||
| 798 | 802 | |
| 799 | 803 | $_POST['frm_skip_cookie'] = 1; |
| 800 | 804 | $do_success = false; |
| 801 | 805 | |
| 802 | - if ( $params['action'] === 'create' ) { | |
| 803 | - if ( apply_filters( 'frm_continue_to_create', true, $form_id ) && ! isset( $frm_vars['created_entries'][ $form_id ]['entry_id'] ) ) { | |
| 804 | - $frm_vars['created_entries'][ $form_id ]['entry_id'] = FrmEntry::create( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing | |
| 806 | + if ( $params['action'] === 'create' && apply_filters( 'frm_continue_to_create', true, $form_id ) && ! isset( $frm_vars['created_entries'][ $form_id ]['entry_id'] ) ) { | |
| 807 | + $frm_vars['created_entries'][ $form_id ]['entry_id'] = FrmEntry::create( $_POST ); // phpcs:ignore WordPress.Security.NonceVerification.Missing | |
| 805 | 808 | |
| 806 | - $params['id'] = $frm_vars['created_entries'][ $form_id ]['entry_id']; | |
| 807 | - $do_success = true; | |
| 808 | - } | |
| 809 | + $params['id'] = $frm_vars['created_entries'][ $form_id ]['entry_id']; | |
| 810 | + $do_success = true; | |
| 809 | 811 | } |
| 810 | 812 | |
| 811 | 813 | do_action( 'frm_process_entry', $params, $errors, $form, array( 'ajax' => $ajax ) ); |
| 812 | 814 | |