$this->get_sync_data(), ); } catch ( MainWP_Exception $e ) { // ok! } } return $information; } /** * Method action() * * Fire off certain branding actions. * * @uses MainWP_Child_Branding::update_branding() Update custom branding settings. * @uses \MainWP\Child\MainWP_Helper::write() */ public function action() { $information = array(); MainWP_Child_DB_Updater_WC::instance()->requires_files(); try { $mwp_action = MainWP_System::instance()->validate_params( 'mwp_action' ); if ( 'update_db' === $mwp_action ) { $information = $this->update_db(); } } catch ( MainWP_Exception $e ) { $information['error'] = $e->getMessage(); } MainWP_Helper::write( $information ); } /** * Get sync data. */ public function get_sync_data() { return apply_filters( 'mainwp_child_db_updater_sync_data', array() ); } /** * Method update_db() * * Update DB. * * @return array Action result. */ public function update_db() { $information = array(); // phpcs:disable WordPress.Security.NonceVerification $plugins = isset( $_POST['list'] ) ? explode( ',', urldecode( wp_unslash( $_POST['list'] ) ) ) : array(); // phpcs:ignore WordPress.Security.NonceVerification,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized // phpcs:enable $upgrades = array(); foreach ( $plugins as $slug ) { $success = false; switch ( $slug ) { case 'woocommerce/woocommerce.php': $success = MainWP_Child_DB_Updater_WC::instance()->update_db(); break; case 'elementor/elementor.php': $success = MainWP_Child_DB_Updater_Elementor::instance()->update_db(); break; case 'elementor-pro/elementor-pro.php': $success = MainWP_Child_DB_Updater_Elementor::instance()->update_db( true ); break; default: break; } if ( $success ) { $upgrades[ $slug ] = 1; } } $information['upgrades'] = $upgrades; $information['plugin_db_upgrades'] = $this->get_sync_data(); return $information; } }