export_forms( 'wpuf_forms', $export_type, $form_ids ); } $args = [ 'post_type' => 'wpuf_forms', 'posts_per_page' => -1, 'post_status' => 'publish', ]; $forms = get_posts( $args ); if ( $forms ) { ?>

%s

', __( 'Sorry you have no form to export', 'wp-user-frontend' ) ); } } /** * List of All Registration forms * * @return void */ public function list_regis_forms() { $post_data = wp_unslash( $_POST ); if ( isset( $post_data['export_regis_form'] ) ) { check_admin_referer( 'wpuf-export-regs-form' ); $export_type = isset( $post_data['export_type'] ) ? sanitize_text_field( $post_data['export_type'] ) : 'all'; $form_ids = isset( $post_data['form_ids'] ) ? array_map( 'absint', $post_data['form_ids'] ) : array(); $this->export_forms( 'wpuf_profile', $export_type, $form_ids ); } $args = [ 'post_type' => 'wpuf_profile', 'posts_per_page' => -1, 'post_status' => 'publish', ]; $forms = get_posts( $args ); if ( $forms ) { ?>

%s

', __( 'Sorry you have no form to export', 'wp-user-frontend' ) ); } } /** * Import functionality */ public function import_data() { ?>

$value ) { $generate_post = [ 'post_title' => $value['post_data']['post_title'], 'post_status' => $value['post_data']['post_status'], 'post_type' => $value['post_data']['post_type'], 'ping_status' => $value['post_data']['ping_status'], 'comment_status' => $value['post_data']['comment_status'], ]; $post_id = wp_insert_post( $generate_post, true ); if ( is_wp_error( $post_id ) ) { $errors->add( $post_id->get_error_code(), $post_id->get_error_message() ); } else { foreach ( $value['meta_data']['fields'] as $order => $field ) { wpuf_insert_form_field( $post_id, $field, false, $order ); } update_post_meta( $post_id, 'wpuf_form_settings', $value['meta_data']['settings'] ); update_post_meta( $post_id, 'notifications', $value['meta_data']['notifications'] ); } } if ( $errors->has_errors() ) { return $errors; } return true; } /** * Export normal form data * * @param string $export_type * @param int $form_ids */ public function export_forms( $form_type, $export_type, $form_ids ) { if ( $export_type === 'all' ) { static::export_to_json( $form_type ); } else if ( $export_type === 'selected' ) { if ( empty( $form_ids ) ) { printf( '

%s

', esc_html__( 'Please select some form for exporting', 'wp-user-frontend' ) ); } else { static::export_to_json( $form_type, $form_ids ); } } } /** * Export into json file * * @param string $post_type * @param array $post_ids */ public static function export_to_json( $post_type, $post_ids = [] ) { $formatted_data = []; $ids = []; $blogname = strtolower( str_replace( ' ', '-', get_option( 'blogname' ) ) ); $date = date( 'Y-m-d' ); $json_name = $blogname . '-wpuf-' . $post_type . '-' . $date; // Namming the filename will be generated. if ( !empty( $post_ids ) ) { foreach ( $post_ids as $key => $value ) { array_push( $ids, $value ); } } $args = [ 'post_status' => 'publish', 'post_type' => $post_type, 'post__in' => ( !empty( $ids ) ) ? $ids : '', ]; $query = new WP_Query( $args ); foreach ( $query->posts as $post ) { $postdata = get_object_vars( $post ); unset( $postdata['ID'] ); $data = [ 'post_data' => $postdata, 'meta_data' => [ 'fields' => wpuf_get_form_fields( $post->ID ), 'settings' => wpuf_get_form_settings( $post->ID ), 'notifications' => wpuf_get_form_notifications( $post->ID ), ], ]; array_push( $formatted_data, $data ); } $json_file = json_encode( $formatted_data ); // Encode data into json data ob_clean(); echo $json_file; // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped header( 'Content-Type: text/json; charset=' . get_option( 'blog_charset' ) ); header( "Content-Disposition: attachment; filename=$json_name.json" ); exit(); } /** * Formetted meta key value * * @param array $array * * @return array */ public function formetted_meta_key_value( $array ) { $result = [ ]; foreach ( $array as $key => $val ) { $result[$key] = $val[0]; } return $result; } public function tool_page() { $msg = isset( $_GET['msg'] ) ? sanitize_text_field( wp_unslash( $_GET['msg'] ) ) : ''; $text = ''; $confirmation_message = __( 'Are you Sure?', 'wp-user-frontend' ); switch ( $msg ) { case 'del_forms': $text = __( 'All forms has been deleted', 'wp-user-frontend' ); break; case 'settings_cleared': $text = __( 'Settings has been cleared!', 'wp-user-frontend' ); break; case 'del_trans': $text = __( 'All transactions has been deleted!', 'wp-user-frontend' ); break; } if ( $text ) { ?>