format( 'm-d-Y_H.i.s.A' ); // Build the uploads directory. $wp_get_upload_dir = wp_get_upload_dir(); $wp_upload_dir = $wp_get_upload_dir['basedir'] . '/mainwp/api_db_backups/'; // Build the full path to the backup file. $gzip_full_path = $wp_upload_dir . $database_name . '_' . $site_url . '_' . $current_date_time . '.sql.gz'; // Create the directory if it doesn't exist. if ( ! file_exists( $wp_upload_dir ) ) { //phpcs:ignore mkdir( $wp_upload_dir, 0755, true ); //phpcs:ignore } if ( function_exists( 'exec' ) ) { // Create the backup file. hide from logs ( password ). exec( "mysqldump --user={$user} --password='{$pass}' --host={$host} {$database_name} | gzip > {$gzip_full_path}", $output, $result ); //phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.system_calls_exec } // Check if the backup was successful. if ( 0 === $result ) { // Success. MainWP_Helper::write( array( 'result' => 'GOOD', 'output' => $output, 'res' => $result, ) ); } else { // Error. MainWP_Helper::write( array( 'result' => 'ERROR', 'output' => $output, 'res' => $result, ) ); } } }