File: /home/efhamali/public_html/wp-content/plugins/wordpress-database-reset/lib/helpers.php
<?php
/**
* Check for command line constant
*/
function is_command_line() {
return ( defined( 'WP_CLI' ) && WP_CLI );
}
/**
* Activation process
* @return bool Should we proceed with plugin activation?
*/
function db_reset_activate() {
$status = db_reset_activation_checks();
if ( is_string( $status ) ) {
db_reset_cancel_activation( $status );
}
}
/**
* Check for minimum plugin requirements
* @return string|bool Error message if fails or boolean true if passes
*/
function db_reset_activation_checks() {
if ( ! function_exists( 'spl_autoload_register' ) &&
version_compare( phpversion(), '5.3', '<' ) ) {
return __( 'The WordPress Database Reset plugin requires at least PHP 5.3!', 'wordpress-database-reset' );
}
if ( version_compare( get_bloginfo( 'version' ), '3.0', '<' ) ) {
return __( 'The WordPress Database Reset plugin requires at least WordPress 3.0!', 'wordpress-database-reset' );
}
return true;
}
/**
* Cancel activation and kill process
* @param string $message Error message
* @return void
*/
function db_reset_cancel_activation( $message ) {
deactivate_plugins( __FILE__ );
wp_die( esc_html($message) );
}
// Ewww. Still need it though.
require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
/**
* Installs the site.
*
* This is a copied and pasted version from /wp-admin/includes/upgrade.php.
* Why am I doing this? Because there's no way of hooking into the WP install
* method to stop the 'new blog' email from firing.
*
* Also, through the command line, the call to wp_guess_url() doesn't work
* and returns an empty value. We must pass the siteurl option to this
* function in order to be able to reset the options table without it
* completely breaking the site.
*
* @since 2.1.0
*
* @param string $blog_title Blog title.
* @param string $user_name User's username.
* @param string $user_email User's email.
* @param bool $public Whether blog is public.
* @param string $deprecated Optional. Not used.
* @param string $user_password Optional. User's chosen password. Default empty (random password).
* @param string $language Optional. Language chosen. Default empty.
* @return array Array keys 'url', 'user_id', 'password', and 'password_message'.
*/
function db_reset_install( $blog_title, $user_name, $user_email, $public, $site_url, $deprecated = '', $user_password = '', $language = '' ) {
if ( ! empty( $deprecated ) )
_deprecated_argument( __FUNCTION__, '2.6' );
wp_check_mysql_version();
wp_cache_flush();
make_db_current_silent();
populate_options();
populate_roles();
remove_all_actions('update_option_blogname');
remove_all_actions('update_option_blogdescription');
update_option( 'blogname', $blog_title );
update_option( 'admin_email', $user_email );
update_option( 'blog_public', $public );
if ( $language ) {
update_option( 'WPLANG', $language );
}
$guessurl = ( wp_guess_url() !== 'http:' ) ? wp_guess_url() : $site_url;
update_option( 'siteurl', $guessurl );
update_option( 'home', $guessurl );
// If not a public blog, don't ping.
if ( ! $public )
update_option( 'default_pingback_flag', 0 );
/*
* Create default user. If the user already exists, the user tables are
* being shared among blogs. Just set the role in that case.
*/
$user_id = username_exists( $user_name );
$user_password = trim( $user_password );
$email_password = false;
if ( ! $user_id && empty( $user_password ) ) {
$user_password = wp_generate_password( 12, false );
$message = __( '<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you.' );
$user_id = wp_create_user( $user_name, $user_password, $user_email );
$email_password = true;
} elseif ( ! $user_id ) {
// Password has been provided
$message = '<em>'.__( 'Your chosen password.' ).'</em>';
$user_id = wp_create_user( $user_name, $user_password, $user_email );
} else {
$message = __( 'User already exists. Password inherited.' );
}
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
wp_install_defaults( $user_id );
wp_install_maybe_enable_pretty_permalinks();
flush_rewrite_rules();
wp_cache_flush();
/**
* Fires after a site is fully installed.
*
* @since 3.9.0
*
* @param WP_User $user The site owner.
*/
do_action( 'wp_install', $user );
return array( 'url' => $guessurl, 'user_id' => $user_id, 'password' => $user_password, 'password_message' => $message );
}