<?php /** * Plugin Name: Mass Pages/Posts Creator * Plugin URI: https://www.thedotstore.com/mass-pages-posts-creator/ * Description: Mass Pages/Posts Creator is a plugin which provide a simplest interface by which user can create multiple Pages/Posts at a time. * Version: 2.2.0 * Author: theDotstore * Author URI: https://www.thedotstore.com * License: GPLv3 or later * License URI: http://www.gnu.org/licenses/gpl-3.0.html * Text Domain: mass-pages-posts-creator * Domain Path: /languages/ * * WP tested up to: 6.6.1 * Requires PHP: 5.6 * Requires at least: 5.0 */ // If this file is called directly, abort. if ( !defined( 'ABSPATH' ) ) { die; } if ( !function_exists( 'mppcp_fs' ) ) { // Create a helper function for easy SDK access. function mppcp_fs() { global $mppcp_fs; if ( !isset( $mppcp_fs ) ) { // Include Freemius SDK. require_once dirname( __FILE__ ) . '/freemius/start.php'; $mppcp_fs = fs_dynamic_init( array( 'id' => '3481', 'slug' => 'mass-pages-posts-creator', 'type' => 'plugin', 'public_key' => 'pk_d515579f040a86a51afd9f721dfed', 'is_premium' => false, 'premium_suffix' => 'Premium', 'has_addons' => false, 'has_paid_plans' => true, 'has_affiliation' => 'selected', 'menu' => array( 'slug' => 'mass-pages-posts-creator', 'first-path' => 'admin.php?page=mass-pages-posts-creator', 'contact' => false, 'support' => false, ), 'is_live' => true, ) ); } return $mppcp_fs; } // Init Freemius. mppcp_fs(); // Signal that SDK was initiated. do_action( 'mppcp_fs_loaded' ); } if ( !defined( 'MPPC_PLUGIN_VERSION' ) ) { define( 'MPPC_PLUGIN_VERSION', '2.2.0' ); } if ( !defined( 'MPPC_PLUGIN_URL' ) ) { define( 'MPPC_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); } if ( !defined( 'MPPC_PLUGIN_PATH' ) ) { define( 'MPPC_PLUGIN_PATH', plugin_dir_path( __FILE__ ) ); } if ( !defined( 'MPPC_PLUGIN_NAME' ) ) { define( 'MPPC_PLUGIN_NAME', __( 'Mass Pages/Posts Creator', 'mass-pages-posts-creator' ) ); } if ( !defined( 'MPPC_STORE_URL' ) ) { define( 'MPPC_STORE_URL', 'https://www.thedotstore.com/' ); } // Call plugin's general functions file require plugin_dir_path( __FILE__ ) . 'includes/mass-pages-posts-creator-functions.php'; // Load plugin styles and scripts $menu_page = filter_input( INPUT_GET, 'page', FILTER_SANITIZE_SPECIAL_CHARS ); if ( isset( $menu_page ) && !empty( $menu_page ) && (strpos( $menu_page, 'mass-pages-posts-creator' ) !== false || strpos( $menu_page, 'mppc' ) !== false) ) { add_action( 'admin_enqueue_scripts', 'mpc_load_my_script' ); add_action( 'admin_enqueue_scripts', 'mpc_styles' ); add_filter( 'admin_footer_text', 'mppc_admin_footer_review' ); } if ( !function_exists( 'mpc_load_my_script' ) ) { function mpc_load_my_script() { wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'jquery-ui-dialog' ); wp_enqueue_script( 'mppc-select2-jquery', plugin_dir_url( __FILE__ ) . 'js/select2.min.js', array('jquery'), MPPC_PLUGIN_VERSION, false ); wp_enqueue_script( 'mppc-help-scout-beacon', plugin_dir_url( __FILE__ ) . 'js/help-scout-beacon.js', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_script( 'mppc-freemius_pro', 'https://checkout.freemius.com/checkout.min.js', array('jquery'), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_script( 'mppc-custom-js', plugin_dir_url( __FILE__ ) . 'js/custom.js', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_localize_script( 'mppc-custom-js', 'adminajax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'ajax_icon' => plugin_dir_url( __FILE__ ) . '/admin/images/ajax-loader.gif', 'dpb_api_url' => MPPC_STORE_URL, 'setup_wizard_ajax_nonce' => wp_create_nonce( 'wizard_ajax_nonce' ), ) ); } } add_action( 'admin_init', 'mpc_welcome_mass_page_creator_screen_do_activation_redirect' ); add_action( 'wp_ajax_page_finder_ajax', 'mppc_page_finder_ajax' ); if ( !function_exists( 'convert_array_to_json' ) ) { function convert_array_to_json( $arr ) { $filter_data = []; foreach ( $arr as $key => $value ) { $option = []; $option['name'] = $value; $option['attributes']['value'] = $key; $filter_data[] = $option; } return $filter_data; } } if ( !function_exists( 'mppc_page_finder_ajax' ) ) { function mppc_page_finder_ajax() { // Verify nonce check_ajax_referer( 'mass_pages_posts_creator_nonce', 'security' ); // List pages $json = true; $request_value = filter_input( INPUT_GET, 'value', FILTER_SANITIZE_FULL_SPECIAL_CHARS ); $post_value = ( isset( $request_value ) ? sanitize_text_field( $request_value ) : '' ); $query = new WP_Query(array( 'post_parent' => 0, 'post_type' => "page", 'post_status' => 'publish', 's' => $post_value, 'showposts' => -1, )); $parent_pages_num = $query->found_posts; $options = []; $html = ''; if ( $parent_pages_num > 0 ) { while ( $query->have_posts() ) { $query->the_post(); $html .= '<option value="' . esc_attr( $query->post->ID ) . '">' . '#' . esc_html( $query->post->ID ) . ' - ' . esc_html( get_the_title( $query->post->ID ) ) . '</option>'; $options[] = array($query->post->ID, esc_html( $query->post->post_title )); } } if ( $json ) { echo wp_json_encode( $options ); wp_die(); } echo wp_kses( $html, mppc_allowed_html_tags() ); wp_die(); } } if ( !function_exists( 'mpc_welcome_mass_page_creator_screen_do_activation_redirect' ) ) { function mpc_welcome_mass_page_creator_screen_do_activation_redirect() { if ( !get_transient( '_mass_page_post_creator_welcome_screen' ) ) { return; } // Delete the redirect transient delete_transient( '_mass_page_post_creator_welcome_screen' ); // if activating from network, or bulk $is_activate = filter_input( INPUT_GET, 'activate-multi', FILTER_SANITIZE_FULL_SPECIAL_CHARS ); if ( is_network_admin() || isset( $is_activate ) ) { return; } // Redirect to extra cost welcome page wp_safe_redirect( add_query_arg( array( 'page' => 'mass-pages-posts-creator', ), admin_url( 'admin.php' ) ) ); exit; } } if ( !function_exists( 'mpc_styles' ) ) { function mpc_styles() { wp_enqueue_style( 'mppc-select2-min-style', plugin_dir_url( __FILE__ ) . 'admin/css/select2.min.css', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_style( 'mppc-jquery-ui-min-style', plugin_dir_url( __FILE__ ) . 'admin/css/jquery-ui.min.css', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_style( 'mppc-jquery-timepicker-style', plugin_dir_url( __FILE__ ) . 'admin/css/jquery.timepicker.min.css', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_style( 'mppc-font-awesome-style', plugin_dir_url( __FILE__ ) . 'admin/css/font-awesome.min.css', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_style( 'mppc-style-css', plugin_dir_url( __FILE__ ) . 'css/style.css', array('wp-jquery-ui-dialog'), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_style( 'mppc-main-style', plugin_dir_url( __FILE__ ) . 'admin/css/style.css', array(), 'all' ); wp_enqueue_style( 'mppc-media-style', plugin_dir_url( __FILE__ ) . 'admin/css/media.css', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_style( 'mppc-plugin-new-style', plugin_dir_url( __FILE__ ) . 'admin/css/plugin-new-style.css', array(), MPPC_PLUGIN_VERSION, 'all' ); wp_enqueue_style( 'mppc-plugin-setup-wizard', plugin_dir_url( __FILE__ ) . 'admin/css/plugin-setup-wizard.css', array(), MPPC_PLUGIN_VERSION, 'all' ); if ( !(mppcp_fs()->is__premium_only() && mppcp_fs()->can_use_premium_code()) ) { wp_enqueue_style( 'mppc-plugin-upgrade-dashboard', plugin_dir_url( __FILE__ ) . 'admin/css/upgrade-dashboard.css', array(), MPPC_PLUGIN_VERSION, 'all' ); } } } if ( !function_exists( 'mpc_pages_posts_creator' ) ) { function mpc_pages_posts_creator() { global $GLOBALS; if ( empty( $GLOBALS['admin_page_hooks']['dots_store'] ) ) { add_menu_page( 'Dotstore Plugins', __( 'Dotstore Plugins', 'mass-pages-posts-creator' ), 'null', 'dots_store', 'dot_store_menu_page', 'dashicons-marker', 25 ); } add_submenu_page( 'dots_store', 'Mass Pages/Posts Creator', __( 'Mass Pages/Posts Creator', 'mass-pages-posts-creator' ), 'manage_options', 'mass-pages-posts-creator', 'mppc_admin_settings_page' ); add_submenu_page( 'dots_store', 'Getting Started', __( 'Getting Started', 'mass-pages-posts-creator' ), 'manage_options', 'mppc-get-started', 'mppc_get_started_page' ); add_submenu_page( 'dots_store', 'Get Premium', __( 'Get Premium', 'mass-pages-posts-creator' ), 'manage_options', 'mppc-upgrade-dashboard', 'mppc_get_premium_page' ); } } if ( !function_exists( 'mppc_remove_admin_submenus' ) ) { function mppc_remove_admin_submenus() { // Remove submenus remove_submenu_page( 'dots_store', 'dots_store' ); remove_submenu_page( 'dots_store', 'mppc-get-started' ); remove_submenu_page( 'dots_store', 'mppc-upgrade-dashboard' ); // Dotstore menu icon css echo '<style> .toplevel_page_dots_store .dashicons-marker::after{content:"";border:3px solid;position:absolute;top:14px;left:15px;border-radius:50%;opacity: 0.6;} li.toplevel_page_dots_store:hover .dashicons-marker::after,li.toplevel_page_dots_store.current .dashicons-marker::after{opacity: 1;} @media only screen and (max-width: 960px){ .toplevel_page_dots_store .dashicons-marker::after{left:14px;} } </style>'; } } /** * Quick guide page * * @since 1.0.0 */ if ( !function_exists( 'mppc_get_started_page' ) ) { function mppc_get_started_page() { require_once plugin_dir_path( __FILE__ ) . 'admin/partials/mppc-get-started-page.php'; } } /** * Get premium page * * @since 2.2.0 */ if ( !function_exists( 'mppc_get_premium_page' ) ) { function mppc_get_premium_page() { require_once plugin_dir_path( __FILE__ ) . 'admin/partials/dots-upgrade-dashboard.php'; } } /** * Plugin information page * * @since 1.0.0 */ if ( !function_exists( 'mppc_admin_settings_page' ) ) { function mppc_admin_settings_page() { require_once plugin_dir_path( __FILE__ ) . 'admin/partials/mppc-admin-settings-page.php'; } } if ( !function_exists( 'mpc_ajax_action' ) ) { function mpc_ajax_action() { // Verify nonce check_ajax_referer( 'mass_pages_posts_creator_nonce', 'security' ); // Create mass posts/pages $prefix_word = filter_input( INPUT_POST, 'prefix_word', FILTER_SANITIZE_SPECIAL_CHARS ); $postfix_word = filter_input( INPUT_POST, 'postfix_word', FILTER_SANITIZE_SPECIAL_CHARS ); $pages_content = filter_input( INPUT_POST, 'pages_content', FILTER_SANITIZE_SPECIAL_CHARS ); $parent_page_id = filter_input( INPUT_POST, 'parent_page_id', FILTER_SANITIZE_SPECIAL_CHARS ); $template_name = filter_input( INPUT_POST, 'template_name', FILTER_SANITIZE_SPECIAL_CHARS ); $type = filter_input( INPUT_POST, 'type', FILTER_SANITIZE_SPECIAL_CHARS ); $page_status = filter_input( INPUT_POST, 'page_status', FILTER_SANITIZE_SPECIAL_CHARS ); $authors = filter_input( INPUT_POST, 'authors', FILTER_SANITIZE_SPECIAL_CHARS ); $excerpt_content = filter_input( INPUT_POST, 'excerpt_content', FILTER_SANITIZE_SPECIAL_CHARS ); $no_post_add = filter_input( INPUT_POST, 'no_post_add', FILTER_SANITIZE_SPECIAL_CHARS ); $comment_status = filter_input( INPUT_POST, 'comment_status', FILTER_SANITIZE_SPECIAL_CHARS ); $pages_list = filter_input( INPUT_POST, 'pages_list', FILTER_SANITIZE_SPECIAL_CHARS ); $prefix_word = sanitize_text_field( wp_unslash( $prefix_word ) ); $postfix_word = sanitize_text_field( wp_unslash( $postfix_word ) ); $pages_content = htmlspecialchars_decode( $pages_content ); $parent_page_id = sanitize_text_field( wp_unslash( $parent_page_id ) ); $template_name = sanitize_text_field( wp_unslash( $template_name ) ); $type = sanitize_text_field( wp_unslash( $type ) ); $page_status = sanitize_text_field( wp_unslash( $page_status ) ); $authors = sanitize_text_field( wp_unslash( $authors ) ); $excerpt_content = sanitize_textarea_field( $excerpt_content ); $no_post_add = sanitize_text_field( wp_unslash( $no_post_add ) ); $comment_status = sanitize_text_field( wp_unslash( $comment_status ) ); $pages_list = sanitize_textarea_field( $pages_list ); $page_list = explode( ",", $pages_list ); if ( $no_post_add === '' ) { $no_post_count = 1; } else { $no_post_count = $no_post_add; } $responsedata = []; foreach ( range( 1, $no_post_count ) as $i ) { foreach ( $page_list as $page_name ) { $my_post = array( 'post_title' => $prefix_word . ' ' . $page_name . ' ' . $postfix_word, 'post_type' => $type, 'post_content' => $pages_content, 'post_author' => $authors, 'post_parent' => $parent_page_id, 'post_status' => $page_status, 'post_excerpt' => $excerpt_content, 'comment_status' => $comment_status, ); $last_insert_id = wp_insert_post( $my_post ); update_post_meta( $last_insert_id, 'post_number', $i ); if ( 'draft' === $page_status ) { $url = get_permalink( $last_insert_id ) . '&preview=true'; } else { if ( 'auto-draft' === $page_status ) { $url = '-'; } else { $url = get_permalink( $last_insert_id ); } } $data = []; $data['id'] = esc_html( $last_insert_id ); $data['pagename'] = esc_html( $page_name ); $data['status'] = esc_html( "Ok" ); if ( 'auto-draft' === $page_status || 'trash' === $page_status ) { $data['url'] = __( "-", 'mass-pages-posts-creator' ); } else { $data['url'] = $url; } $responsedata[] = $data; add_post_meta( $last_insert_id, '_wp_page_template', $template_name ); } } echo wp_json_encode( $responsedata ); wp_die(); } } add_action( 'wp_ajax_mpc_ajax_action', 'mpc_ajax_action' ); add_action( 'wp_ajax_nopriv_mpc_ajax_action', 'mpc_ajax_action' ); if ( !function_exists( 'mpc_activate' ) ) { function mpc_activate() { set_transient( '_mass_page_post_creator_welcome_screen', true, 30 ); } } register_activation_hook( __FILE__, 'mpc_activate' ); if ( !function_exists( 'mpc_deactivate' ) ) { function mpc_deactivate() { } } register_deactivation_hook( __FILE__, 'mpc_deactivate' ); if ( !function_exists( 'mppc_admin_footer_review' ) ) { function mppc_admin_footer_review() { $url = ''; $url = esc_url( 'https://wordpress.org/plugins/mass-pagesposts-creator/#reviews' ); $html = sprintf( wp_kses( __( '<strong>We need your support</strong> to keep updating and improving the plugin. Please <a href="%1$s" target="_blank">help us by leaving a good review</a> :) Thanks!', 'mass-pages-posts-creator' ), array( 'strong' => array(), 'a' => array( 'href' => array(), 'target' => 'blank', ), ) ), esc_url( $url ) ); return wp_kses_post( $html ); } } /** * Check Initialize plugin in case of WooCommerce plugin is missing. * * @since 1.0.0 */ if ( !function_exists( 'mass_page_post_creator_initialize_plugin' ) ) { function mass_page_post_creator_initialize_plugin() { add_action( 'admin_menu', 'mpc_pages_posts_creator' ); add_action( 'admin_head', 'mppc_remove_admin_submenus' ); // Load the plugin text domain for translation. load_plugin_textdomain( 'mass-pages-posts-creator', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' ); } } add_action( 'plugins_loaded', 'mass_page_post_creator_initialize_plugin' );