38217-vm/wp-content/plugins/mainwp/pages/page-mainwp-bulk-add.php
2026-02-05 17:08:59 +03:00

99 lines
4.2 KiB
PHP

<?php
/**
* MainWP Bulk Add Handler
*
* Handles Bulk addition of Pages, Posts, User Import, User Addition & Admin Users Password.
*
* @package MainWP/Dashboard
*/
namespace MainWP\Dashboard;
/**
* Class MainWP_Bulk_Add
*
* @used-by MainWP_Page::BulkAddPage
* @used-by MainWP_Post::BulkAddPost
* @used-by MainWP_User::do_bulk_add
* @used-by MainWP_User::do_import
* @used-by MainWP_Bulk_Update_Admin_Passwords::BulkAddUser
*/
class MainWP_Bulk_Add { // phpcs:ignore Generic.Classes.OpeningBraceSameLine.ContentAfterBrace -- NOSONAR.nore Generic.Classes.OpeningBraceSameLine.ContentAfterBrace -- NOSONAR.
/**
* Method get_class_name()
*
* Get Class Name.
*
* @return object __CLASS__
*/
public static function get_class_name() {
return __CLASS__;
}
/**
* Method posting_bulk_handler()
*
* @param mixed $data Data to process.
* @param object $website The website object.
* @param object $output Function output object.
*
* @return mixed $output
*
* @uses \MainWP\Dashboard\MainWP_Error_Helper::get_error_message()
* @uses \MainWP\Dashboard\MainWP_Exception
* @uses \MainWP\Dashboard\MainWP_Logger::warning_for_website()
* @uses \MainWP\Dashboard\MainWP_System_Utility::get_child_response()
*/
public static function posting_bulk_handler( $data, $website, &$output ) { //phpcs:ignore -- NOSONAR - complex.
if ( MainWP_Demo_Handle::get_instance()->is_demo_website( $website ) ) {
return;
}
if ( preg_match( '/<mainwp>(.*)<\/mainwp>/', $data, $results ) > 0 ) {
$result = $results[1];
$information = MainWP_System_Utility::get_child_response( base64_decode( $result ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions -- base64_encode used for http encoding compatible.
if ( is_array( $information ) && isset( $information['other_data']['new_post_data'] ) ) { // created/updated post/page.
do_action( 'mainwp_post_created', $website, 'newpost', $information['other_data']['new_post_data'] );
}
if ( is_array( $information ) && isset( $information['other_data']['new_user_data'] ) ) { // created user.
$data = $information['other_data']['new_user_data'];
/**
* Fires immediately after new user action.
*
* @since 4.5.1.1
*/
do_action( 'mainwp_user_action', $website, 'created', $data );
}
if ( is_array( $information ) && isset( $information['other_data']['update_admin_password'] ) ) { // created user.
$data = $information['other_data']['update_admin_password'];
/**
* Fires immediately after update admin password action.
*
* @since 4.5.1.1
*/
do_action( 'mainwp_user_action', $website, 'newadminpassword', $data );
}
if ( isset( $information['added'] ) ) {
$output->ok[ $website->id ] = '1';
if ( isset( $information['link'] ) ) {
$output->link[ $website->id ] = esc_html( $information['link'] );
}
if ( isset( $information['added_id'] ) ) {
$output->added_id[ $website->id ] = esc_html( $information['added_id'] );
}
} elseif ( isset( $information['error'] ) ) {
$output->errors[ $website->id ] = esc_html__( 'ERROR: ', 'mainwp' ) . esc_html( $information['error'] );
} else {
$output->errors[ $website->id ] = esc_html__( 'Undefined error! Please reinstall the MainWP Child plugin on the child site', 'mainwp' );
}
} else {
MainWP_Logger::instance()->debug_for_website( $website, 'posting_bulk_handler', '[' . $website->url . '] Result was: [data-start]' . $data . '[data-end]' );
$output->errors[ $website->id ] = MainWP_Error_Helper::get_error_message( new MainWP_Exception( 'NOMAINWP', $website->url ) ); //phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
}
}
}