if (!defined('WP_FILE_MANAGER_DIRNAME')) { define('WP_FILE_MANAGER_DIRNAME', plugin_basename(dirname(__FILE__))); } if ( ! defined( 'WP_FM_SITE_URL' ) ) { define( 'WP_FM_SITE_URL', 'https://filemanagerpro.io' ); } define('WP_FILE_MANAGER_PATH', plugin_dir_path(__FILE__)); if (!class_exists('mk_file_folder_manager')): class mk_file_folder_manager { protected $SERVER = 'https://filemanagerpro.io/api/plugindata/api.php'; var $ver = '8.0.2'; /* Auto Load Hooks */ public function __construct() { add_action('activated_plugin', array(&$this, 'deactivate_file_manager_pro')); add_action('admin_menu', array(&$this, 'ffm_menu_page')); add_action('network_admin_menu', array(&$this, 'ffm_menu_page')); add_action('admin_enqueue_scripts', array(&$this, 'ffm_admin_things')); add_action('admin_enqueue_scripts', array(&$this, 'ffm_admin_script')); add_action('wp_ajax_mk_file_folder_manager', array(&$this, 'mk_file_folder_manager_action_callback')); add_action('wp_ajax_mk_fm_close_fm_help', array($this, 'mk_fm_close_fm_help')); add_filter('plugin_action_links', array(&$this, 'mk_file_folder_manager_action_links'), 10, 2); do_action('load_filemanager_extensions'); add_action('plugins_loaded', array(&$this, 'filemanager_load_text_domain')); /* File Manager Verify Email */ add_action('wp_ajax_mk_filemanager_verify_email', array(&$this, 'mk_filemanager_verify_email_callback')); add_action('wp_ajax_verify_filemanager_email', array(&$this, 'verify_filemanager_email_callback')); /* Media Upload */ add_action('wp_ajax_mk_file_folder_manager_media_upload', array(&$this, 'mk_file_folder_manager_media_upload')); /* New Feature */ add_action('init', array(&$this, 'create_auto_directory')); /* Backup - Feature */ add_action('wp_ajax_mk_file_manager_backup', array(&$this, 'mk_file_manager_backup_callback')); add_action('wp_ajax_mk_file_manager_backup_remove', array(&$this, 'mk_file_manager_backup_remove_callback')); add_action('wp_ajax_mk_file_manager_single_backup_remove', array(&$this, 'mk_file_manager_single_backup_remove_callback')); add_action('wp_ajax_mk_file_manager_single_backup_logs', array(&$this, 'mk_file_manager_single_backup_logs_callback')); add_action('wp_ajax_mk_file_manager_single_backup_restore', array(&$this, 'mk_file_manager_single_backup_restore_callback')); add_action( 'rest_api_init', function () { if(current_user_can('manage_options') || (is_multisite() && current_user_can( 'manage_network' ))){ register_rest_route( 'v1', '/fm/backup/(?P[a-zA-Z0-9-=]+)/(?P[a-zA-Z0-9-=]+)/(?P[a-zA-Z0-9-=]+)', array( 'methods' => 'GET', 'callback' => array( $this, 'fm_download_backup' ), 'permission_callback' => '__return_true', )); register_rest_route( 'v1', '/fm/backupall/(?P[a-zA-Z0-9-=]+)/(?P[a-zA-Z0-9-=]+)/(?P[a-zA-Z0-9-=]+)/(?P[a-zA-Z]+)', array( 'methods' => 'GET', 'callback' => array( $this, 'fm_download_backup_all' ), 'permission_callback' => '__return_true', )); } }); } /** * Checks if another version of Filemanager/Filemanager PRO is active and deactivates it. * Hooked on `activated_plugin` so other plugin is deactivated when current plugin is activated. * * @return void */ public function deactivate_file_manager_pro($plugin) { if ( ! in_array( $plugin, array( 'wp-file-manager/file_folder_manager.php', 'wp-file-manager-pro/file_folder_manager_pro.php' ), true ) ) { return; } $plugin_to_deactivate = 'wp-file-manager/file_folder_manager.php'; // If we just activated the free version, deactivate the pro version. if ( $plugin === $plugin_to_deactivate ) { $plugin_to_deactivate = 'wp-file-manager-pro/file_folder_manager_pro.php'; } if ( is_multisite() && is_network_admin() ) { $active_plugins = (array) get_site_option( 'active_sitewide_plugins', array() ); $active_plugins = array_keys( $active_plugins ); } else { $active_plugins = (array) get_option( 'active_plugins', array() ); } foreach ( $active_plugins as $plugin_basename ) { if ( $plugin_to_deactivate === $plugin_basename ) { deactivate_plugins( $plugin_basename ); return; } } } /* Auto Directory */ public function create_auto_directory() { $upload_dir = wp_upload_dir(); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup'; if (!file_exists($backup_dirname)) { wp_mkdir_p($backup_dirname); } // security fix $myfile = $backup_dirname."/.htaccess"; if(!file_exists($myfile)){ $myfileHandle = @fopen($myfile, 'w+'); if(!is_bool($myfileHandle)){ $txt = ''; $txt .= "\nOrder allow,deny\n"; $txt .= "Deny from all\n"; $txt .= ""; @fwrite($myfileHandle, $txt); @fclose($myfileHandle); } } // creating blank index.php inside fm_backup $ourFileName = $backup_dirname."/index.html"; if(!file_exists($ourFileName)){ $ourFileHandle = @fopen($ourFileName, 'w'); if(!is_bool($ourFileHandle)){ @fclose($ourFileHandle); @chmod($ourFileName, 0755); } } } /* Backup - Restore */ public function mk_file_manager_single_backup_restore_callback() { WP_Filesystem(); global $wp_filesystem; $nonce = sanitize_text_field($_POST['nonce']); if(current_user_can('manage_options') && wp_verify_nonce( $nonce, 'wpfmbackuprestore' )) { global $wpdb; $fmdb = $wpdb->prefix.'wpfm_backup'; $upload_dir = wp_upload_dir(); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup/'; $bkpid = intval($_POST['id']); $result = array(); $filesDestination = WP_CONTENT_DIR.'/'; if ( strcmp($backup_dirname, "/") === 0 ) { $backup_path = $backup_dirname; }else{ $backup_path = $backup_dirname."/"; } $database = sanitize_text_field($_POST['database']); $plugins = sanitize_text_field($_POST['plugins']); $themes = sanitize_text_field($_POST['themes']); $uploads = sanitize_text_field($_POST['uploads']); $others = sanitize_text_field($_POST['others']); if($bkpid) { include('classes/files-restore.php'); $restoreFiles = new wp_file_manager_files_restore(); $fmbkp = $wpdb->get_row( $wpdb->prepare('select * from '.$fmdb.' where id = %d', $bkpid) ); if($themes == 'true') { // case 1 - Themes if(file_exists($backup_dirname.$fmbkp->backup_name.'-themes.zip')) { $wp_filesystem->delete($filesDestination.'themes',true); $restoreThemes = $restoreFiles->extract($backup_dirname.$fmbkp->backup_name.'-themes.zip',$filesDestination.'themes'); if($restoreThemes) { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => 'false', 'uploads'=> $uploads, 'others' => $others,'bkpid' => $bkpid,'msg' => '
  • '.__('Themes backup restored successfully.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => 'false', 'uploads'=> $uploads, 'others' => $others,'bkpid' => $bkpid,'msg' => '
  • '.__('Unable to restore themes.', 'wp-file-manager').'
  • ')); die; } }else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => 'false', 'uploads'=> $uploads, 'others' => $others,'bkpid' => $bkpid,'msg' => '')); die; } } else if($uploads == 'true'){ // case 2 - Uploads if ( is_multisite() ) { $path_direc = $upload_dir['basedir']; } else { $path_direc = $filesDestination.'uploads'; } if(file_exists($backup_dirname.$fmbkp->backup_name.'-uploads.zip')) { $alllist = $wp_filesystem->dirlist($path_direc); if(is_array($alllist) && !empty($alllist)) { foreach($alllist as $key=>$value) { if($key!= 'wp-file-manager-pro') { $wp_filesystem->delete($path_direc.'/'.$key,true); } } } $restoreUploads = $restoreFiles->extract($backup_dirname.$fmbkp->backup_name.'-uploads.zip',$path_direc); if($restoreUploads) { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => $themes, 'uploads'=> 'false', 'others' => $others,'bkpid' => $bkpid,'msg' => '
  • '.__('Uploads backup restored successfully.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => $themes, 'uploads'=> 'false', 'others' => $others,'bkpid' => $bkpid,'msg' => '
  • '.__('Unable to restore uploads.', 'wp-file-manager').'
  • ')); die; } } else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => $themes, 'uploads'=> 'false', 'others' => $others,'bkpid' => $bkpid,'msg' => '')); die; } } else if($others == 'true'){ // case 3 - Others if(file_exists($backup_dirname.$fmbkp->backup_name.'-others.zip')) { $alllist = $wp_filesystem->dirlist($filesDestination); if(is_array($alllist) && !empty($alllist)) { foreach($alllist as $key=>$value) { if($key != 'themes' && $key != 'uploads' && $key != 'plugins') { $wp_filesystem->delete($filesDestination.$key,true); } } } $restoreOthers = $restoreFiles->extract($backup_dirname.$fmbkp->backup_name.'-others.zip',$filesDestination); if($restoreOthers) { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => 'false','bkpid' => $bkpid,'msg' => '
  • '.__('Others backup restored successfully.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => 'false','bkpid' => $bkpid,'msg' => '
  • '.__('Unable to restore others.', 'wp-file-manager').'
  • ')); die; } }else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => 'false','bkpid' => $bkpid,'msg' => '')); die; } } else if($plugins == 'true'){ // case 4- Plugins if(file_exists($backup_path.$fmbkp->backup_name.'-plugins.zip')) { $alllist = $wp_filesystem->dirlist($filesDestination.'plugins'); if(is_array($alllist) && !empty($alllist)) { foreach($alllist as $key=>$value) { if($key!= 'wp-file-manager') { $wp_filesystem->delete($filesDestination.'plugins/'.$key,true); } } } $restorePlugins = $restoreFiles->extract($backup_path.$fmbkp->backup_name.'-plugins.zip',$filesDestination.'plugins'); if($restorePlugins) { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => 'false','themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => $bkpid,'msg' => '
  • '.__('Plugins backup restored successfully.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => 'false','themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => $bkpid,'msg' => '
  • '.__('Unable to restore plugins.', 'wp-file-manager').'
  • ')); die; } }else { echo wp_json_encode(array('step' => 1, 'database' => $database,'plugins' => 'false','themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => 0,'msg' => '')); die; } } else if($database == 'true'){ // case 5- Database if(file_exists($backup_dirname.$fmbkp->backup_name.'-db.sql.gz')) { include('classes/db-restore.php'); $restoreDatabase = new Restore_Database($fmbkp->backup_name.'-db.sql.gz'); if($restoreDatabase->restoreDb()) { echo wp_json_encode(array('step' => 0, 'database' => 'false','plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => '','msg' => '
  • '.__('Database backup restored successfully.', 'wp-file-manager').'
  • ', 'msgg' => '
  • '.__('All Done', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 0, 'database' => 'false','plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => $bkpid,'msg' => '
  • '.__('Unable to restore DB backup.', 'wp-file-manager').'
  • ')); die; } }else { echo wp_json_encode(array('step' => 1, 'database' => 'false','plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => $bkpid,'msg' => '')); die; } }else { echo wp_json_encode(array('step' => 0, 'database' => 'false','plugins' => 'false','themes' => 'false','uploads'=> 'false','others' => 'false', 'bkpid' => '', 'msg' => '
  • '.__('All Done', 'wp-file-manager').'
  • ')); die; } } else { echo wp_json_encode(array('step' => 0, 'database' => 'false','plugins' => 'false','themes' => 'false', 'uploads'=> 'false', 'others' => 'false','bkpid' => '','msg' => '
  • '.__('Unable to restore plugins.', 'wp-file-manager').'
  • ')); die; } die; } } /* Backup - Remove */ public function mk_file_manager_backup_remove_callback(){ $nonce = sanitize_text_field($_POST['nonce']); if(current_user_can('manage_options') && wp_verify_nonce( $nonce, 'wpfmbackupremove' )) { global $wpdb; $fmdb = $wpdb->prefix.'wpfm_backup'; $upload_dir = wp_upload_dir(); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup/'; $bkpRids = $_POST['delarr']; $isRemoved = false; if(isset($bkpRids)) { foreach($bkpRids as $bkRid) { $bkRid = intval($bkRid); $fmbkp = $wpdb->get_row( $wpdb->prepare('select * from '.$fmdb.' where id = %d',$bkRid) ); if(file_exists($backup_dirname.$fmbkp->backup_name.'-db.sql.gz')) { unlink($backup_dirname.$fmbkp->backup_name.'-db.sql.gz'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-others.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-others.zip'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-plugins.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-plugins.zip'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-themes.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-themes.zip'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-uploads.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-uploads.zip'); } // removing from db $wpdb->delete($fmdb, array('id' => $bkRid)); $isRemoved = true; } } if($isRemoved) { echo __('Backups removed successfully!','wp-file-manager'); } else { echo __('Unable to removed backup!','wp-file-manager'); } die; } } /* Backup Logs */ public function mk_file_manager_single_backup_logs_callback() { $nonce = sanitize_text_field($_POST['nonce']); if(current_user_can('manage_options') && wp_verify_nonce( $nonce, 'wpfmbackuplogs' )) { global $wpdb; $fmdb = $wpdb->prefix.'wpfm_backup'; $upload_dir = wp_upload_dir(); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup/'; $bkpId = intval($_POST['id']); $logs = array(); $logMessage = ''; if(isset($bkpId)) { $fmbkp = $wpdb->get_row( $wpdb->prepare('select * from '.$fmdb.' where id = %d', $bkpId) ); if(file_exists($backup_dirname.$fmbkp->backup_name.'-db.sql.gz')) { $size = filesize($backup_dirname.$fmbkp->backup_name.'-db.sql.gz'); $logs[] = __('Database backup done on date ', 'wp-file-manager').$fmbkp->backup_date.' ('.$fmbkp->backup_name.'-db.sql.gz) ('.$this->formatSizeUnits($size).')'; } if(file_exists($backup_dirname.$fmbkp->backup_name.'-plugins.zip')) { $size = filesize($backup_dirname.$fmbkp->backup_name.'-plugins.zip'); $logs[] = __('Plugins backup done on date ', 'wp-file-manager').$fmbkp->backup_date.' ('.$fmbkp->backup_name.'-plugins.zip) ('.$this->formatSizeUnits($size).')'; } if(file_exists($backup_dirname.$fmbkp->backup_name.'-themes.zip')) { $size = filesize($backup_dirname.$fmbkp->backup_name.'-themes.zip'); $logs[] = __('Themes backup done on date ', 'wp-file-manager').$fmbkp->backup_date.' ('.$fmbkp->backup_name.'-themes.zip) ('.$this->formatSizeUnits($size).')'; } if(file_exists($backup_dirname.$fmbkp->backup_name.'-uploads.zip')) { $size = filesize($backup_dirname.$fmbkp->backup_name.'-uploads.zip'); $logs[] = __('Uploads backup done on date ', 'wp-file-manager').$fmbkp->backup_date.' ('.$fmbkp->backup_name.'-uploads.zip) ('.$this->formatSizeUnits($size).')'; } if(file_exists($backup_dirname.$fmbkp->backup_name.'-others.zip')) { $size = filesize($backup_dirname.$fmbkp->backup_name.'-others.zip'); $logs[] = __('Others backup done on date ', 'wp-file-manager').$fmbkp->backup_date.' ('.$fmbkp->backup_name.'-others.zip) ('.$this->formatSizeUnits($size).')'; } } $count = 1; $logMessage = '

    '.__('Logs', 'wp-file-manager').'

    '; if(isset($logs)) { foreach($logs as $log) { $logMessage .= '

    ('.$count++.') '.$log.'

    '; } } else { $logMessage .= '

    '.__('No logs found!', 'wp-file-manager').'

    '; } echo $logMessage; die; } } /* Returning Valid Format */ public function formatSizeUnits($bytes) { if ($bytes >= 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } /* Backup - Remove */ public function mk_file_manager_single_backup_remove_callback(){ $nonce = sanitize_text_field($_POST['nonce']); if(current_user_can('manage_options') && wp_verify_nonce( $nonce, 'wpfmbackupremove' )) { global $wpdb; $fmdb = $wpdb->prefix.'wpfm_backup'; $upload_dir = wp_upload_dir(); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup/'; $bkpId = intval($_POST['id']); $isRemoved = false; if(isset($bkpId)) { $fmbkp = $wpdb->get_row( $wpdb->prepare('select * from '.$fmdb.' where id = %d',$bkpId) ); if(file_exists($backup_dirname.$fmbkp->backup_name.'-db.sql.gz')) { unlink($backup_dirname.$fmbkp->backup_name.'-db.sql.gz'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-others.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-others.zip'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-plugins.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-plugins.zip'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-themes.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-themes.zip'); } if(file_exists($backup_dirname.$fmbkp->backup_name.'-uploads.zip')) { unlink($backup_dirname.$fmbkp->backup_name.'-uploads.zip'); } // removing from db $wpdb->delete($fmdb, array('id' => $bkpId)); $isRemoved = true; } if($isRemoved) { echo "1"; } else { echo "2"; } die; } } /* Backup - Ajax - Feature */ public function mk_file_manager_backup_callback(){ $nonce = sanitize_text_field( $_POST['nonce'] ); if( current_user_can( 'manage_options' ) && wp_verify_nonce( $nonce, 'wpfmbackup' ) ) { global $wpdb; $fmdb = $wpdb->prefix.'wpfm_backup'; $date = date('Y-m-d H:i:s'); $file_number = 'backup_'.date('Y_m_d_H_i_s-').bin2hex(openssl_random_pseudo_bytes(4)); $database = sanitize_text_field($_POST['database']); $files = sanitize_text_field($_POST['files']); $plugins = sanitize_text_field($_POST['plugins']); $themes = sanitize_text_field($_POST['themes']); $uploads = sanitize_text_field($_POST['uploads']); $others = sanitize_text_field($_POST['others']); $bkpid = isset($_POST['bkpid']) ? sanitize_text_field($_POST['bkpid']) : ''; if($database == 'false' && $files == 'false' && $bkpid == '') { echo wp_json_encode(array('step' => '0', 'database' => 'false','files' => 'false','plugins' => 'false','themes' => 'false', 'uploads'=> 'false', 'others' => 'false', 'bkpid' => '0', 'msg' => '
  • '.__('Nothing selected for backup','wp-file-manager').'
  • ')); die; } if($bkpid == '') { $wpdb->insert( $fmdb, array( 'backup_name' => $file_number, 'backup_date' => $date ), array( '%s', '%s' ) ); $id = $wpdb->insert_id; } else { $id = $bkpid; } if ( ! wp_verify_nonce( $nonce, 'wpfmbackup' ) ) { echo wp_json_encode(array('step' => 0, 'msg' => '
  • '.__('Security Issue.', 'wp-file-manager').'
  • ')); } else { $fileName = $wpdb->get_row( $wpdb->prepare("select * from ".$fmdb." where id=%d",$id) ); //database if($database == 'true') { include('classes/db-backup.php'); $backupDatabase = new Backup_Database($fileName->backup_name); $result = $backupDatabase->backupTables(TABLES); if($result == '1'){ echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => $files,'plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => $id,'msg' => '
  • '.__('Database backup done.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => $files,'plugins' => $plugins,'themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => $id, 'msg' => '
  • '.__('Unable to create database backup.', 'wp-file-manager').'
  • ')); die; } } else if($files == 'true') { include('classes/files-backup.php'); $upload_dir = wp_upload_dir(); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup'; $filesBackup = new wp_file_manager_files_backup(); // plugins if($plugins == 'true') { $plugin_dir = WP_PLUGIN_DIR; $backup_plugins = $filesBackup->zipData( $plugin_dir,$backup_dirname.'/'.$fileName->backup_name.'-plugins.zip'); if($backup_plugins) { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => $themes, 'uploads'=> $uploads, 'others' => $others,'bkpid' => $id, 'msg' => '
  • '.__('Plugins backup done.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => $themes, 'uploads'=> $uploads, 'others' => $others, 'bkpid' => $id, 'msg' => '
  • '.__('Plugins backup failed.', 'wp-file-manager').'
  • ')); die; } } // themes else if($themes == 'true') { $themes_dir = get_theme_root(); $backup_themes = $filesBackup->zipData( $themes_dir,$backup_dirname.'/'.$fileName->backup_name.'-themes.zip'); if($backup_themes) { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => 'false', 'uploads'=> $uploads, 'others' => $others, 'bkpid' => $id, 'msg' => '
  • '.__('Themes backup done.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => $themes, 'uploads'=> $uploads, 'others' => $others, 'bkpid' => $id, 'msg' => '
  • '.__('Themes backup failed.', 'wp-file-manager').'
  • ')); die; } } // uploads else if($uploads == 'true') { $wpfm_upload_dir = wp_upload_dir(); $uploads_dir = $wpfm_upload_dir['basedir']; $backup_uploads = $filesBackup->zipData( $uploads_dir,$backup_dirname.'/'.$fileName->backup_name.'-uploads.zip'); if($backup_uploads) { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => 'false', 'uploads'=> 'false', 'others' => $others, 'bkpid' => $id, 'msg' => '
  • '.__('Uploads backup done.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => 'false', 'uploads'=> 'false', 'others' => $others, 'bkpid' => $id, 'msg' => '
  • '.__('Uploads backup failed.', 'wp-file-manager').'
  • ')); die; } } // other else if($others == 'true') { $others_dir = WP_CONTENT_DIR; $backup_others = $filesBackup->zipOther( $others_dir,$backup_dirname.'/'.$fileName->backup_name.'-others.zip'); if($backup_others) { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => 'false', 'uploads'=> 'false', 'others' => 'false', 'bkpid' => $id, 'msg' => '
  • '.__('Others backup done.', 'wp-file-manager').'
  • ')); die; } else { echo wp_json_encode(array('step' => 1, 'database' => 'false','files' => 'true','plugins' => 'false','themes' => 'false', 'uploads'=> 'false', 'others' => 'false', 'bkpid' => $id, 'msg' => '
  • '.__('Others backup failed.', 'wp-file-manager').'
  • ')); } } else { echo wp_json_encode(array('step' => 0, 'database' => 'false', 'files' => 'false','plugins' => 'false','themes' => 'false','uploads'=> 'false','others' => 'false', 'bkpid' => $id, 'msg' => '
  • '.__('All Done', 'wp-file-manager').'
  • ')); die; } } else { echo wp_json_encode(array('step' => 0, 'database' => 'false', 'files' => 'false','plugins' => 'false','themes' => 'false','uploads'=> 'false','others' => 'false','bkpid' => $id, 'msg' => '
  • '.__('All Done', 'wp-file-manager').'
  • ')); } } } else { die(__('Invalid security token!', 'wp-file-manager')); } die; } /* Verify Email*/ public function mk_filemanager_verify_email_callback() { $current_user = wp_get_current_user(); $nonce = sanitize_text_field($_REQUEST['vle_nonce']); if (wp_verify_nonce($nonce, 'verify-filemanager-email')) { $action = sanitize_text_field($_POST['todo']); $lokhal_email = sanitize_email($_POST['lokhal_email']); $lokhal_fname = sanitize_text_field(htmlentities($_POST['lokhal_fname'])); $lokhal_lname = sanitize_text_field(htmlentities($_POST['lokhal_lname'])); // case - 1 - close if ($action == 'cancel') { set_transient('filemanager_cancel_lk_popup_'.$current_user->ID, 'filemanager_cancel_lk_popup_'.$current_user->ID, 60 * 60 * 24 * 30); update_option('filemanager_email_verified_'.$current_user->ID, 'yes'); } elseif ($action == 'verify') { $engagement = '75'; update_option('filemanager_email_address_'.$current_user->ID, $lokhal_email); update_option('verify_filemanager_fname_'.$current_user->ID, $lokhal_fname); update_option('verify_filemanager_lname_'.$current_user->ID, $lokhal_lname); update_option('filemanager_email_verified_'.$current_user->ID, 'yes'); /* Send Email Code */ $subject = 'Email Verification'; $message = " Email Verification

    Thanks for signing up! Just click the link below to verify your email and weC2@2!22ll keep you up-to-date with the latest and greatest brewing in our dev labs!

    Click Here to Verify

    "; // Always set content-type when sending HTML email $headers = 'MIME-Version: 1.0'."\r\n"; $headers .= 'Content-type:text/html;charset=UTF-8'."\r\n"; $headers .= 'From: noreply@filemanagerpro.io'."\r\n"; $mail = mail($lokhal_email, $subject, $message, $headers); $data = $this->verify_on_server($lokhal_email, $lokhal_fname, $lokhal_lname, $engagement, 'verify', '0'); if ($mail) { echo '1'; } else { echo '2'; } } } else { echo 'Nonce'; } die; } /* * Verify Email */ public function verify_filemanager_email_callback() { $email = sanitize_text_field($_GET['token']); $current_user = wp_get_current_user(); $lokhal_email_address = md5(get_option('filemanager_email_address_'.$current_user->ID)); if ($email == $lokhal_email_address) { $this->verify_on_server(get_option('filemanager_email_address_'.$current_user->ID), get_option('verify_filemanager_fname_'.$current_user->ID), get_option('verify_filemanager_lname_'.$current_user->ID), '100', 'verified', '1'); update_option('filemanager_email_verified_'.$current_user->ID, 'yes'); echo '

    Email Verified Successfully. Redirecting please wait.

    '; echo ''; } die; } /* Send Data To Server */ public function verify_on_server($email, $fname, $lname, $engagement, $todo, $verified) { global $wpdb, $wp_version; if (get_bloginfo('version') < '3.4') { $theme_data = get_theme_data(get_stylesheet_directory().'/style.css'); $theme = $theme_data['Name'].' '.$theme_data['Version']; } else { $theme_data = wp_get_theme(); $theme = $theme_data->Name.' '.$theme_data->Version; } // Try to identify the hosting provider $host = false; if (defined('WPE_APIKEY')) { $host = 'WP Engine'; } elseif (defined('PAGELYBIN')) { $host = 'Pagely'; } $mysql_ver = @mysqli_get_server_info($wpdb->dbh); $id = get_option('page_on_front'); $info = array( 'email' => $email, 'first_name' => $fname, 'last_name' => $lname, 'engagement' => $engagement, 'SITE_URL' => site_url(), 'PHP_version' => phpversion(), 'upload_max_filesize' => ini_get('upload_max_filesize'), 'post_max_size' => ini_get('post_max_size'), 'memory_limit' => ini_get('memory_limit'), 'max_execution_time' => ini_get('max_execution_time'), 'HTTP_USER_AGENT' => $_SERVER['HTTP_USER_AGENT'], 'wp_version' => $wp_version, 'plugin' => 'wp file manager', 'nonce' => 'um235gt9duqwghndewi87s34dhg', 'todo' => $todo, 'verified' => $verified, ); $str = http_build_query($info); $args = array( 'body' => $str, 'timeout' => '5', 'redirection' => '5', 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'cookies' => array(), ); $response = wp_remote_post($this->SERVER, $args); return $response; } /** * Generate plugin key **/ private static function fm_generate_key(){ return substr(str_shuffle(str_repeat($x='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil(25/strlen($x)) )),1,25); } /** * Generate plugin key **/ private static function fm_get_key(){ return get_option('fm_key'); } /* File Manager text Domain */ public function filemanager_load_text_domain() { $domain = dirname(plugin_basename(__FILE__)); $locale = apply_filters('plugin_locale', get_locale(), $domain); load_textdomain($domain, trailingslashit(WP_LANG_DIR).'plugins'.'/'.$domain.'-'.$locale.'.mo'); load_plugin_textdomain($domain, false, basename(dirname(__FILE__)).'/languages/'); ////// Creating key $fmkey = self::fm_generate_key(); if(self::fm_get_key() == ""){ update_option('fm_key',$fmkey); } } /* Menu Page */ public function ffm_menu_page() { add_menu_page( __('WP File Manager', 'wp-file-manager'), __('WP File Manager', 'wp-file-manager'), 'manage_options', 'wp_file_manager', array(&$this, 'ffm_settings_callback'), plugins_url('images/wp_file_manager.svg', __FILE__) ); /* Only for admin */ add_submenu_page('wp_file_manager', __('Settings', 'wp-file-manager'), __('Settings', 'wp-file-manager'), 'manage_options', 'wp_file_manager_settings', array(&$this, 'wp_file_manager_settings')); /* Only for admin */ add_submenu_page('wp_file_manager', __('Preferences', 'wp-file-manager'), __('Preferences', 'wp-file-manager'), 'manage_options', 'wp_file_manager_preferences', array(&$this, 'wp_file_manager_root')); /* Only for admin */ add_submenu_page('wp_file_manager', __('System Properties', 'wp-file-manager'), __('System Properties', 'wp-file-manager'), 'manage_options', 'wp_file_manager_sys_properties', array(&$this, 'wp_file_manager_properties')); /* Only for admin */ add_submenu_page('wp_file_manager', __('Shortcode - PRO', 'wp-file-manager'), __('Shortcode - PRO', 'wp-file-manager'), 'manage_options', 'wp_file_manager_shortcode_doc', array(&$this, 'wp_file_manager_shortcode_doc')); add_submenu_page('wp_file_manager', __('Logs', 'wp-file-manager'), __('Logs', 'wp-file-manager'), 'manage_options', 'wpfm-logs', array(&$this, 'wp_file_manager_logs')); add_submenu_page('wp_file_manager', __('Backup/Restore', 'wp-file-manager'), __('Backup/Restore', 'wp-file-manager'), 'manage_options', 'wpfm-backup', array(&$this, 'wp_file_manager_backup')); } /* Main Role */ public function ffm_settings_callback() { if (is_admin()): include 'lib/wpfilemanager.php'; endif; } /*Settings */ public function wp_file_manager_settings() { if (is_admin()): include 'inc/settings.php'; endif; } /* Shortcode Doc */ public function wp_file_manager_shortcode_doc() { if (is_admin()): include 'inc/shortcode_docs.php'; endif; } /* Backup */ public function wp_file_manager_backup() { if (is_admin()): include 'inc/backup.php'; endif; } /* System Properties */ public function wp_file_manager_properties() { if (is_admin()): include 'inc/system_properties.php'; endif; } /* Root */ public function wp_file_manager_root() { if (is_admin()): include 'inc/root.php'; endif; } /* System Properties */ public function wp_file_manager_logs() { if (is_admin()): include 'inc/logs.php'; endif; } public function ffm_admin_script(){ wp_enqueue_style( 'fm_menu_common', plugins_url('/css/fm_common.css', __FILE__) ); } /* Admin Things */ public function ffm_admin_things() { $getPage = isset($_GET['page']) ? sanitize_text_field($_GET['page']) : ''; $allowedPages = array( 'wp_file_manager', ); // Languages $lang = isset($_GET['lang']) && !empty($_GET['lang']) && in_array(sanitize_text_field(htmlentities($_GET['lang'])), $this->fm_languages()) ? sanitize_text_field(htmlentities($_GET['lang'])) : ''; if (!empty($getPage) && in_array($getPage, $allowedPages)): if( isset( $_GET['lang'] ) && !empty( $_GET['lang'] ) && !wp_verify_nonce( isset( $_GET['nonce'] ) ? $_GET['nonce'] : '', 'wp-file-manager-language' )) { //Access Denied } else { global $wp_version; $fm_nonce = wp_create_nonce('wp-file-manager'); $wp_fm_lang = get_transient('wp_fm_lang'); $wp_fm_theme = get_transient('wp_fm_theme'); $opt = get_option('wp_file_manager_settings'); wp_enqueue_style('jquery-ui', plugins_url('css/jquery-ui.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_commands', plugins_url('lib/css/commands.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_common', plugins_url('lib/css/common.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_contextmenu', plugins_url('lib/css/contextmenu.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_cwd', plugins_url('lib/css/cwd.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_dialog', plugins_url('lib/css/dialog.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_fonts', plugins_url('lib/css/fonts.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_navbar', plugins_url('lib/css/navbar.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_places', plugins_url('lib/css/places.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_quicklook', plugins_url('lib/css/quicklook.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_statusbar', plugins_url('lib/css/statusbar.css', __FILE__), '', $this->ver); wp_enqueue_style('theme', plugins_url('lib/css/theme.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_toast', plugins_url('lib/css/toast.css', __FILE__), '', $this->ver); wp_enqueue_style('fm_toolbar', plugins_url('lib/css/toolbar.css', __FILE__), '', $this->ver); wp_enqueue_script('jquery'); wp_enqueue_script('fm_jquery_js', plugins_url('js/top.js', __FILE__), '', $this->ver); $jquery_ui_js = 'jquery-ui-1.11.4.js'; // 5.6 jquery ui issue fix if ( version_compare( $wp_version, '5.6', '>=' ) ) { $jquery_ui_js = 'jquery-ui-1.13.2.js'; } wp_enqueue_script('fm_jquery_ui', plugins_url('lib/jquery/'.$jquery_ui_js, __FILE__), $this->ver); wp_enqueue_script('fm_elFinder_min', plugins_url('lib/js/elfinder.min.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder', plugins_url('lib/js/elFinder.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder_version', plugins_url('lib/js/elFinder.version.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_jquery_elfinder', plugins_url('lib/js/jquery.elfinder.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder_mimetypes', plugins_url('lib/js/elFinder.mimetypes.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder_options', plugins_url('lib/js/elFinder.options.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder_options_netmount', plugins_url('lib/js/elFinder.options.netmount.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder_history', plugins_url('lib/js/elFinder.history.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder_command', plugins_url('lib/js/elFinder.command.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_elFinder_resources', plugins_url('lib/js/elFinder.resources.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_dialogelfinder', plugins_url('lib/js/jquery.dialogelfinder.js', __FILE__), '', $this->ver); if (!empty($lang)) { set_transient('wp_fm_lang', $lang, 60 * 60 * 720); wp_enqueue_script('fm_lang', plugins_url('lib/js/i18n/elfinder.'.$lang.'.js', __FILE__), '', $this->ver); } elseif (false !== ($wp_fm_lang = get_transient('wp_fm_lang'))) { wp_enqueue_script('fm_lang', plugins_url('lib/js/i18n/elfinder.'.$wp_fm_lang.'.js', __FILE__), '', $this->ver); } else { wp_enqueue_script('fm_lang', plugins_url('lib/js/i18n/elfinder.en.js', __FILE__), '', $this->ver); } wp_enqueue_script('fm_ui_button', plugins_url('lib/js/ui/button.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_contextmenu', plugins_url('lib/js/ui/contextmenu.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_cwd', plugins_url('lib/js/ui/cwd.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_dialog', plugins_url('lib/js/ui/dialog.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_fullscreenbutton', plugins_url('lib/js/ui/fullscreenbutton.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_navbar', plugins_url('lib/js/ui/navbar.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_navdock', plugins_url('lib/js/ui/navdock.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_overlay', plugins_url('lib/js/ui/overlay.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_panel', plugins_url('lib/js/ui/panel.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_path', plugins_url('lib/js/ui/path.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_searchbutton', plugins_url('lib/js/ui/searchbutton.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_sortbutton', plugins_url('lib/js/ui/sortbutton.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_stat', plugins_url('lib/js/ui/stat.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_toast', plugins_url('lib/js/ui/toast.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_toolbar', plugins_url('lib/js/ui/toolbar.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_tree', plugins_url('lib/js/ui/tree.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_uploadButton', plugins_url('lib/js/ui/uploadButton.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_viewbutton', plugins_url('lib/js/ui/viewbutton.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_ui_workzone', plugins_url('lib/js/ui/workzone.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_archive', plugins_url('lib/js/commands/archive.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_back', plugins_url('lib/js/commands/back.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_chmod', plugins_url('lib/js/commands/chmod.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_colwidth', plugins_url('lib/js/commands/colwidth.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_copy', plugins_url('lib/js/commands/copy.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_cut', plugins_url('lib/js/commands/cut.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_download', plugins_url('lib/js/commands/download.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_duplicate', plugins_url('lib/js/commands/duplicate.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_edit', plugins_url('lib/js/commands/edit.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_empty', plugins_url('lib/js/commands/empty.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_extract', plugins_url('lib/js/commands/extract.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_forward', plugins_url('lib/js/commands/forward.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_fullscreen', plugins_url('lib/js/commands/fullscreen.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_getfile', plugins_url('lib/js/commands/getfile.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_help', plugins_url('lib/js/commands/help.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_hidden', plugins_url('lib/js/commands/hidden.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_hide', plugins_url('lib/js/commands/hide.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_home', plugins_url('lib/js/commands/home.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_info', plugins_url('lib/js/commands/info.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_mkdir', plugins_url('lib/js/commands/mkdir.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_mkfile', plugins_url('lib/js/commands/mkfile.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_netmount', plugins_url('lib/js/commands/netmount.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_open', plugins_url('lib/js/commands/open.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_opendir', plugins_url('lib/js/commands/opendir.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_opennew', plugins_url('lib/js/commands/opennew.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_paste', plugins_url('lib/js/commands/paste.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_places', plugins_url('lib/js/commands/places.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_quicklook', plugins_url('lib/js/commands/quicklook.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_quicklook_plugins', plugins_url('lib/js/commands/quicklook.plugins.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_reload', plugins_url('lib/js/commands/reload.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_rename', plugins_url('lib/js/commands/rename.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_resize', plugins_url('lib/js/commands/resize.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_restore', plugins_url('lib/js/commands/restore.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_rm', plugins_url('lib/js/commands/rm.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_search', plugins_url('lib/js/commands/search.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_selectall', plugins_url('lib/js/commands/selectall.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_selectinvert', plugins_url('lib/js/commands/selectinvert.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_selectnone', plugins_url('lib/js/commands/selectnone.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_sort', plugins_url('lib/js/commands/sort.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_undo', plugins_url('lib/js/commands/undo.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_up', plugins_url('lib/js/commands/up.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_upload', plugins_url('lib/js/commands/upload.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_command_view', plugins_url('lib/js/commands/view.js', __FILE__), '', $this->ver); wp_enqueue_script('fm_quicklook_googledocs', plugins_url('lib/js/extras/quicklook.googledocs.js', __FILE__), '', $this->ver); // code mirror wp_enqueue_script('fm-codemirror-js', plugins_url('lib/codemirror/lib/codemirror.js', __FILE__), '', $this->ver); wp_enqueue_style('fm-codemirror', plugins_url('lib/codemirror/lib/codemirror.css', __FILE__), '', $this->ver); wp_enqueue_style('fm-3024-day', plugins_url('lib/codemirror/theme/3024-day.css', __FILE__), '', $this->ver); // File - Manager UI wp_register_script( "file_manager_free_shortcode_admin", plugins_url('js/file_manager_free_shortcode_admin.js', __FILE__ ), array(), rand(0,9999) ); wp_localize_script( 'file_manager_free_shortcode_admin', 'fmfparams', array( 'ajaxurl' => admin_url('admin-ajax.php'), 'nonce' => $fm_nonce, 'plugin_url' => plugins_url('lib/', __FILE__), 'lang' => isset($_GET['lang']) && in_array(sanitize_text_field(htmlentities($_GET['lang'])), $this->fm_languages()) ? sanitize_text_field(htmlentities($_GET['lang'])) : (($wp_fm_lang !== false) ? $wp_fm_lang : 'en'), 'fm_enable_media_upload' => (isset($opt['fm_enable_media_upload']) && $opt['fm_enable_media_upload'] == '1') ? '1' : '0', 'is_multisite'=> is_multisite() ? '1' : '0', 'network_url'=> is_multisite() ? network_home_url() : '', ) ); wp_enqueue_script( 'file_manager_free_shortcode_admin' ); $theme = isset($_GET['theme']) && !empty($_GET['theme']) ? sanitize_text_field(htmlentities($_GET['theme'])) : ''; // New Theme if (!empty($theme)) { delete_transient('wp_fm_theme'); set_transient('wp_fm_theme', $theme, 60 * 60 * 720); if ($theme != 'default') { wp_enqueue_style('theme-latest', plugins_url('lib/themes/'.$theme.'/css/theme.css', __FILE__), '', $this->ver); } } elseif (false !== ($wp_fm_theme = get_transient('wp_fm_theme'))) { if ($wp_fm_theme != 'default') { wp_enqueue_style('theme-latest', plugins_url('lib/themes/'.$wp_fm_theme.'/css/theme.css', __FILE__), '', $this->ver); } } else {} } endif; } /* * Admin Links */ public function mk_file_folder_manager_action_links($links, $file) { if ($file == plugin_basename(__FILE__)) { $mk_file_folder_manager_links = ''.__('Buy Pro', 'wp-file-manager').''; $mk_file_folder_manager_donate = ''.__('Donate', 'wp-file-manager').''; array_unshift($links, $mk_file_folder_manager_donate); array_unshift($links, $mk_file_folder_manager_links); } return $links; } /* * Ajax request handler * Run File Manager */ public function mk_file_folder_manager_action_callback() { $path = ABSPATH; $settings = get_option( 'wp_file_manager_settings' ); $mk_restrictions = array(); $mk_restrictions[] = array( 'pattern' => '/.tmb/', 'read' => false, 'write' => false, 'hidden' => true, 'locked' => false, ); $mk_restrictions[] = array( 'pattern' => '/.quarantine/', 'read' => false, 'write' => false, 'hidden' => true, 'locked' => false, ); $nonce = sanitize_text_field($_REQUEST['_wpnonce']); if (wp_verify_nonce($nonce, 'wp-file-manager')) { require 'lib/php/autoload.php'; if (isset($settings['fm_enable_trash']) && $settings['fm_enable_trash'] == '1') { $mkTrash = array( 'id' => '1', 'driver' => 'Trash', 'path' => WP_FILE_MANAGER_PATH.'lib/files/.trash/', 'tmbURL' => site_url().'/lib/files/.trash/.tmb/', 'winHashFix' => DIRECTORY_SEPARATOR !== '/', 'uploadDeny' => array(''), 'uploadAllow' => array(''), 'uploadOrder' => array('deny', 'allow'), 'accessControl' => 'access', 'attributes' => $mk_restrictions, ); $mkTrashHash = 't1_Lw'; } else { $mkTrash = array(); $mkTrashHash = ''; } $path_url = is_multisite() ? network_home_url() : site_url(); /** * @Preference * If public root path is changed. */ $absolute_path = str_replace( '\\', '/', $path ); $path_length = strlen( $absolute_path ); $access_folder = isset( $settings['public_path'] ) && ! empty( $settings['public_path'] ) ? substr( $settings['public_path'], $path_length ) : ''; if ( isset( $settings['public_path'] ) && ! empty( $settings['public_path'] ) ) { $path = $settings['public_path']; $path_url = is_multisite() ? network_home_url() .'/'. ltrim( $access_folder, '/' ) : site_url() .'/'. ltrim( $access_folder, '/' ); } $opts = array( 'debug' => false, 'roots' => array( array( 'driver' => 'LocalFileSystem', 'path' => $path, 'URL' => $path_url, 'trashHash' => $mkTrashHash, 'winHashFix' => DIRECTORY_SEPARATOR !== '/', 'uploadDeny' => array(), 'uploadAllow' => array('image', 'text/plain'), 'uploadOrder' => array('deny', 'allow'), 'accessControl' => 'access', 'acceptedName' => 'validName', 'disabled' => array('help', 'preference','hide','netmount'), 'attributes' => $mk_restrictions, ), $mkTrash, ), ); //run elFinder $connector = new elFinderConnector(new elFinder($opts)); $connector->run(); } die; } /* permisions */ public function permissions() { $permissions = 'manage_options'; return $permissions; } /* Load Help Desk */ public function load_help_desk() { $mkcontent = ''; $mkcontent .= '
    '; $mkcontent .= '
    '; $mkcontent .= ''; $mkcontent .= '
    '; $mkcontent .= '
    '; $mkcontent .= 'XWP File Manager

    We love and care about you. Our team is putting maximum efforts to provide you the best functionalities. It would be highly appreciable if you could spend a couple of seconds to give a Nice Review to the plugin to appreciate our efforts. So we can work hard to provide new features regularly :)

    Later Rate Us Never'; $mkcontent .= '
    '; if (false === ($mk_fm_close_fm_help_c_fm = get_option('mk_fm_close_fm_help_c_fm'))) { echo apply_filters('the_content', $mkcontent); } } /* Close Help */ public function mk_fm_close_fm_help() { $what_to_do = sanitize_text_field($_POST['what_to_do']); $expire_time = 15; if ($what_to_do == 'rate_now' || $what_to_do == 'rate_never') { $expire_time = 365; } elseif ($what_to_do == 'rate_later') { $expire_time = 15; } if (false === ($mk_fm_close_fm_help_c_fm = get_option('mk_fm_close_fm_help_c_fm'))) { $set = update_option('mk_fm_close_fm_help_c_fm', 'done'); if ($set) { echo 'ok'; } else { echo 'oh'; } } else { echo 'ac'; } die; } /* Loading Custom Assets */ public function load_custom_assets() { wp_enqueue_script('fm-custom-script', plugins_url('js/fm_script.js', __FILE__), array('jquery'), $this->ver); wp_localize_script( 'fm-custom-script', 'fmscript', array( 'nonce' => wp_create_nonce('wp-file-manager-language') )); wp_enqueue_style('fm-custom-script-style', plugins_url('css/fm_script.css', __FILE__), '', $this->ver); } /* custom_css */ public function custom_css() { wp_enqueue_style('fm-custom-style', plugins_url('css/fm_custom.css', __FILE__), '', $this->ver); } /* Languages */ public function fm_languages() { $langs = array('English' => 'en', 'Arabic' => 'ar', 'Bulgarian' => 'bg', 'Catalan' => 'ca', 'Czech' => 'cs', 'Danish' => 'da', 'German' => 'de', 'Greek' => 'el', 'EspaA3ol' => 'es', 'Persian-Farsi' => 'fa', 'Faroese translation' => 'fo', 'French' => 'fr', 'Hebrew (B7EEB7 18B7@1B7!22B7@4)' => 'he', 'hr' => 'hr', 'magyar' => 'hu', 'Indonesian' => 'id', 'Italiano' => 'it', 'Japanese' => 'ja', 'Korean' => 'ko', 'Dutch' => 'nl', 'Norwegian' => 'no', 'Polski' => 'pl', 'PortuguA3@4s' => 'pt_BR', 'RomA3EEnA4E3' => 'ro', 'Russian (B0B1E3B1@3B1@3B0E4B0E1B0!16)' => 'ru', 'Slovak' => 'sk', 'Slovenian' => 'sl', 'Serbian' => 'sr', 'Swedish' => 'sv', 'TA3E8rkA3e' => 'tr', 'Uyghur' => 'ug_CN', 'Ukrainian' => 'uk', 'Vietnamese' => 'vi', 'Simplified Chinese (C7@2C4@5 1CC4E1C6 13 21)' => 'zh_CN', 'Traditional Chinese' => 'zh_TW', ); return $langs; } /* get All Themes */ public function get_themes() { $dir = dirname(__FILE__).'/lib/themes'; $theme_files = array_diff(scandir($dir), array('..', '.')); return $theme_files; } /* Success Message */ public function success($msg) { _e('

    '.$msg.'

    ', 'te-editor'); } /* Error Message */ public function error($msg) { _e('

    '.$msg.'

    ', 'te-editor'); } /* * Admin - Assets */ public function fm_custom_assets() { wp_enqueue_style('fm_custom_style', plugins_url('/css/fm_custom_style.css', __FILE__)); } /* * Media Upload */ public function mk_file_folder_manager_media_upload() { $nonce = sanitize_text_field($_REQUEST['_wpnonce']); if (current_user_can('manage_options') && wp_verify_nonce($nonce, 'wp-file-manager')) { $uploadedfiles = isset($_POST['uploadefiles']) ? $_POST['uploadefiles'] : ''; if(!empty($uploadedfiles)) { foreach($uploadedfiles as $uploadedfile) { $uploadedfile = esc_url_raw($uploadedfile); /* Start - Uploading Image to Media Lib */ if(is_multisite() && isset($_REQUEST['networkhref']) && !empty($_REQUEST['networkhref'])) { $network_home = network_home_url(); $uploadedfile = $network_home.basename($uploadedfile); } $this->upload_to_media_library($uploadedfile); /* End - Uploading Image to Media Lib */ } } } die; } /* Upload Images to Media Library */ public function upload_to_media_library($image_url) { $allowed_exts = array('jpg','jpe', 'jpeg','gif', 'png','svg', 'pdf','zip', 'ico','pdf', 'doc','docx', 'ppt','pptx', 'pps','ppsx', 'odt','xls', 'xlsx','psd', 'mp3','m4a', 'ogg','wav', 'mp4','m4v', 'mov','wmv', 'avi','mpg', 'ogv','3gp', '3g2' ); $image_url = str_replace('..', '', $image_url); $url = $image_url; preg_match('/[^\?]+\.(jpg|jpe|jpeg|gif|png|pdf|zip|ico|pdf|doc|docx|ppt|pptx|pps|ppsx|odt|xls|xlsx|psd|mp3|m4a|ogg|wav|mp4|m4v|mov|wmv|avi|mpg|ogv|3gp|3g2)/i', $url, $matches); if(isset($matches[1]) && in_array($matches[1], $allowed_exts)) { // Need to require these files if ( !function_exists('media_handle_upload') ) { require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); } $tmp = download_url( $url ); $post_id = 0; $desc = ""; $file_array = array(); $file_array['name'] = basename($matches[0]); $file_info = pathinfo($file_array['name']); $desc = $file_info['filename']; // If error storing temporarily, unlink if ( is_wp_error( $tmp ) ) { @unlink($file_array['tmp_name']); $file_array['tmp_name'] = ''; } else { $file_array['tmp_name'] = $tmp; } $id = media_handle_sideload( $file_array, $post_id, $desc ); if ( is_wp_error($id) ) { @unlink($file_array['tmp_name']); return $id; } } } /** * Function to download backup */ public function fm_download_backup($request){ $params = $request->get_params(); $backup_id = isset($params["backup_id"]) ? trim($params["backup_id"]) : ''; $type = isset($params["type"]) ? trim($params["type"]) : ''; if(!empty($backup_id) && !empty($type)){ $id = (int) base64_decode(trim($params["backup_id"])); $type = base64_decode(trim($params["type"])); $fmkey = self::fm_get_key(); if(base64_encode(site_url().$fmkey) === $params['key']){ global $wpdb; $upload_dir = wp_upload_dir(); $backup = $wpdb->get_var( $wpdb->prepare("select backup_name from ".$wpdb->prefix."wpfm_backup where id=%d",$id) ); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup/'; $backup_baseurl = $upload_dir['baseurl'].'/wp-file-manager-pro/fm_backup/'; if($type == "db"){ $bkpName = $backup.'-db.sql.gz'; }else{ $directory_separators = ['../', './','..\\', '.\\', '..']; $type = str_replace($directory_separators, '', $type); $bkpName = $backup.'-'.$type.'.zip'; } $file = $backup_dirname.$bkpName; if(file_exists($file)){ //Set Headers: $memory_limit = intval( ini_get( 'memory_limit' ) ); if ( ! extension_loaded( 'suhosin' ) && $memory_limit < 512 ) { @ini_set( 'memory_limit', '1024M' ); } @ini_set( 'max_execution_time', 6000 ); @ini_set( 'max_input_vars', 10000 ); $etag = md5_file($file); header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($file)) . ' GMT'); header("Etag: ".$etag); header('Content-Type: application/force-download'); header('Content-Disposition: inline; filename="'.$bkpName.'"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Connection: close'); if(ob_get_level()){ ob_end_clean(); } readfile($file); exit(); } else{ $messg = __( 'File doesn\'t exist to download.', 'wp-file-manager-pro'); return new WP_Error( 'fm_file_exist', $messg, array( 'status' => 404 ) ); } } else { $messg = __( 'Invalid Security Code.', 'wp-file-manager-pro'); return new WP_Error( 'fm_security_issue', $messg, array( 'status' => 404 ) ); } } if(!isset($params["backup_id"])){ $messg1 = __( 'Missing backup id.', 'wp-file-manager-pro'); return new WP_Error( 'fm_missing_params', $messg1, array( 'status' => 401 ) ); } elseif(!isset($params["type"])){ $messg2 = __( 'Missing parameter type.', 'wp-file-manager-pro'); return new WP_Error( 'fm_missing_params', $messg2, array( 'status' => 401 ) ); } else { $messg4 = __( 'Missing required parameters.', 'wp-file-manager-pro'); return new WP_Error( 'fm_missing_params', $messg4, array( 'status' => 401 ) ); } } /** * Function to download all backup zip in one */ public function fm_download_backup_all($request){ $params = $request->get_params(); $backup_id = isset($params["backup_id"]) ? trim($params["backup_id"]) : ''; $type = isset($params["type"]) ? trim($params["type"]) : ''; $all = isset($params["all"]) ? trim($params["all"]) : ''; if(!empty($backup_id) && !empty($type) && !empty($all)){ $id = (int) base64_decode(trim($params["backup_id"])); $type = base64_decode(trim($params["type"])); $fmkey = self::fm_get_key(); if(base64_encode(site_url().$fmkey) === $params['key']){ global $wpdb; $upload_dir = wp_upload_dir(); $backup = $wpdb->get_var( $wpdb->prepare("select backup_name from ".$wpdb->prefix."wpfm_backup where id=%d",$id) ); $backup_dirname = $upload_dir['basedir'].'/wp-file-manager-pro/fm_backup/'; $dir_list = scandir($backup_dirname, 1); $zip = new ZipArchive(); $zip_name = $backup."-all.zip"; if ($zip->open($zip_name, ZIPARCHIVE::CREATE || ZipArchive::OVERWRITE) === true) { foreach($dir_list as $key => $file_name){ $ext = pathinfo($file_name, PATHINFO_EXTENSION); if($file_name != '.' && $file_name != '..' && (is_dir($backup_dirname.'/'.$file_name) || $ext == 'zip' || $ext == 'gz') ){ if(strpos($file_name,$backup) !== false ){ $source_file = $backup_dirname.$dir_list[$key]; $source_file = str_replace('\\', '/', realpath($source_file)); $zip->addFromString(basename($source_file), file_get_contents($source_file)); } } } } $zip->close(); if(file_exists($zip_name)){ //Set Headers: $memory_limit = intval( ini_get( 'memory_limit' ) ); if ( ! extension_loaded( 'suhosin' ) && $memory_limit < 512 ) { @ini_set( 'memory_limit', '1024M' ); } @ini_set( 'max_execution_time', 6000 ); @ini_set( 'max_input_vars', 10000 ); $etag = md5_file($zip_name); header('Pragma: public'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($zip_name)) . ' GMT'); header("Etag: ".$etag); header('Content-Type: application/force-download'); header('Content-Disposition: inline; filename="'.$zip_name.'"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($zip_name)); header('Connection: close'); if(ob_get_level()){ ob_end_clean(); } readfile($zip_name); unlink($zip_name); exit(); } else{ $messg = __( 'File doesn\'t exist to download.', 'wp-file-manager-pro'); return new WP_Error( 'fm_file_exist', $messg, array( 'status' => 404 ) ); } } else { $messg = __( 'Invalid Security Code.', 'wp-file-manager-pro'); return new WP_Error( 'fm_security_issue', $messg, array( 'status' => 404 ) ); } } if(!isset($params["backup_id"])){ $messg1 = __( 'Missing backup id.', 'wp-file-manager-pro'); return new WP_Error( 'fm_missing_params', $messg1, array( 'status' => 401 ) ); } elseif(!isset($params["type"])){ $messg2 = __( 'Missing parameter type.', 'wp-file-manager-pro'); return new WP_Error( 'fm_missing_params', $messg2, array( 'status' => 401 ) ); } else { $messg4 = __( 'Missing required parameters.', 'wp-file-manager-pro'); return new WP_Error( 'fm_missing_params', $messg4, array( 'status' => 401 ) ); } } /* * Redirection */ public static function mk_fm_redirect($url){ $url= esc_url_raw($url); wp_register_script( 'mk-fm-redirect', '', array("jquery")); wp_enqueue_script( 'mk-fm-redirect' ); wp_add_inline_script('mk-fm-redirect','window.location.href="'.$url.'"'); } } $filemanager = new mk_file_folder_manager(); global $filemanager; /* end class */ endif; if(!function_exists('mk_file_folder_manager_wp_fm_create_tables')) { function mk_file_folder_manager_wp_fm_create_tables(){ global $wpdb; $table_name = $wpdb->prefix . 'wpfm_backup'; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE ".$table_name." ( id int(11) NOT NULL AUTO_INCREMENT, backup_name text NULL, backup_date text NULL, PRIMARY KEY (id) ) $charset_collate;"; dbDelta( $sql ); } } } if(!function_exists('mk_file_folder_manager_create_tables')){ function mk_file_folder_manager_create_tables(){ if ( is_multisite() ) { global $wpdb; // Get all blogs in the network and activate plugin on each one $blog_ids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" ); foreach ( $blog_ids as $blog_id ) { switch_to_blog( $blog_id ); mk_file_folder_manager_wp_fm_create_tables(); restore_current_blog(); } } else { mk_file_folder_manager_wp_fm_create_tables(); } } } register_activation_hook( __FILE__, 'mk_file_folder_manager_create_tables' ); ทำความรู้จักกับบ่อนออนไลน์สุดฮิต – All Time Tow Truck

    เว็บตรงบาคาร่า เว็บพนันออนไลน์อันดับหนึ่ง เล่นได้จ่ายจริง

    เว็บบาคาร่า คือแพลตฟอร์มเดิมพันออนไลน์ที่ได้รับความนิยมสูงสุดในหมู่ผู้เล่นชาวไทย ด้วยรูปแบบเกมที่เข้าใจง่ายและมาตรฐานความปลอดภัยระดับสากล ประสบการณ์การเล่นที่ราบรื่น พร้อมอัตราการจ่ายที่ยุติธรรม ทำให้ที่นี่เป็นตัวเลือกอันดับต้นสำหรับนักพนันยุคใหม่

    ทำความรู้จักกับบ่อนออนไลน์สุดฮิต

    ในยุคดิจิทัลนี้ บ่อนออนไลน์สุดฮิต กำลังเป็นที่พูดถึงอย่างกว้างขวางในหมู่คนรักการเสี่ยงโชค ด้วยระบบที่ทันสมัยและโปรโมชั่นที่ดึงดูดใจ ทำให้ผู้เล่นเข้าถึงความสนุกได้ง่ายดายผ่านปลายนิ้วสัมผัส ไม่ว่าจะเป็นเกมสล็อตที่เร้าใจ คาสิโนสดเสมือนจริง หรือแทงบอลราคาดี ทุกอย่างครบครันในแพลตฟอร์มเดียว บ่อนเหล่านี้ถูกออกแบบมาให้ปลอดภัยด้วยมาตรฐานความมั่นคงสูงและมีทีมงานคอยช่วยเหลือตลอด 24 ชั่วโมง หากคุณกำลังมองหาความตื่นเต้นที่ไม่เหมือนใคร บ่อนออนไลน์สุดฮิต คือคำตอบที่คุณไม่ควรมองข้าม มันคือประตูสู่โอกาสทองที่รอให้คุณก้าวเข้าไปสัมผัสและสร้างความมั่งคั่งได้ทุกวัน

    จุดเริ่มต้นและความนิยมของไพ่บาคาร่าในโลกดิจิทัล

    การทำความรู้จักกับบ่อนออนไลน์สุดฮิตในยุคนี้เป็นเรื่องที่นักเดิมพันไม่ควรพลาด เพราะแต่ละแพลตฟอร์มล้วนมีจุดเด่นเฉพาะตัวที่ดึงดูดผู้เล่นทั่วโลก ไม่ว่าจะเป็นเกมสล็อตที่แตกง่าย ไพ่คาสิโนสดจากดีลเลอร์จริง หรือโปรโมชั่นโบนัสต้อนรับที่คุ้มค่า การเลือกเล่นกับเว็บที่ได้รับความนิยมสูงจึงช่วยลดความเสี่ยงและเพิ่มโอกาสทำกำไรได้อย่างมั่นใจ

    • ระบบฝาก-ถอนที่รวดเร็ว รองรับทรูวอเล็ท
    • ค่ายเกมดังอย่าง PG Soft, Pragmatic Play, และ Evolution
    • มาตรฐานความปลอดภัยระดับสากล พร้อมบริการ 24 ชม.

    เว็บที่ได้มาตรฐานควรมีคุณสมบัติอะไรบ้าง

    ในโลกของ บ่อนออนไลน์สุดฮิต ที่กำลังมาแรงในยุคดิจิทัล ผู้เล่นสามารถเข้าถึงเกมเดิมพันได้ทุกที่ทุกเวลาเพียงปลายนิ้วสัมผัส ไม่ว่าจะเป็นเกมไพ่ยอดนิยมอย่างบาคาร่า เสือมังกร หรือสล็อตแมชชีนที่มาพร้อมกราฟิกสุดอลังการ ความสะดวกและรวดเร็วคือจุดเด่นที่ทำให้เหล่านักเดิมพันหันมาให้ความสนใจมากขึ้น การเลือกเว็บที่น่าเชื่อถือจึงเป็นก้าวแรกที่สำคัญที่สุด ก่อนร่วมสนุก

    • ระบบฝาก-ถอนอัตโนมัติ ไม่มีขั้นต่ำ
    • โบนัสต้อนรับและโปรโมชั่นรายวัน
    • มีถ่ายทอดสดดีลเลอร์สาวสวย
    • รองรับทุกอุปกรณ์ทั้งมือถือและคอมพิวเตอร์

    ด้วยฟีเจอร์เหล่านี้ บ่อนออนไลน์จึงกลายเป็นทางเลือกที่ทั้งตื่นเต้นและท้าทายสำหรับใครหลายคน

    เว็บบาคาร่า

    ข้อดีของการเล่นผ่านแพลตฟอร์มดิจิทัลเทียบกับโต๊ะจริง

    ในโลกของเกมที่เต็มไปด้วยแสงสี เสียงเรียกเข้า และจังหวะหัวใจเต้นระรัว บ่อนออนไลน์สุดฮิต กลายเป็นดินแดนที่นักเสี่ยงโชคต่างแห่แหนมาทำความรู้จัก จากจุดเริ่มต้นเล็กๆ ในห้องสนทนา ปัจจุบันมันขยายตัวเป็นอาณาจักรดิจิทัลที่เปิดให้ทุกคนก้าวเข้าไปสัมผัสได้เพียงปลายนิ้ว เรื่องราวของบ่อนเหล่านี้เริ่มต้นจากความอยากรู้ ผ่านการคลิกครั้งแรกที่นำพาไปสู่โลกแห่งวงล้อหมุนและไพ่ที่พลิกผัน บางคนเข้ามาเพื่อหาความตื่นเต้น บางคนมาเพื่อท้าทายโชคชะตา แต่ทุกคนต่างมีเป้าหมายเดียวกันคือการได้ลิ้มรสชัยชนะสักครั้ง

    เมื่อคุณเปิดประตูสู่บ่อนออนไลน์ คุณจะพบกับเกมหลากหลายที่ถูกออกแบบมาให้คุณไม่ต้องเดินทางไกล:

    • สล็อตแมชชีน – เกมหมุนวงล้อที่มาพร้อมธีมสุดแปลก ตั้งแต่ป่าลึกลับไปจนถึงอวกาศ
    • บาคาร่า – การดวลไพ่ระหว่างเจ้ามือและผู้เล่นที่เต็มไปด้วยกลยุทธ์
    • รูเล็ต – ลูกกลมกลิ้งบนวงล้อที่หยุดเมื่อโชคชะตาตัดสิน

    ทุกครั้งที่คุณกดปุ่มวางเดิมพัน เรื่องราวใหม่ก็เริ่มต้นขึ้น—บางทีคุณอาจเป็นคนต่อไปที่สร้างตำนานในโลกนี้

    เลือกสถานที่เล่นให้ปลอดภัยและน่าเชื่อถือ

    การเลือกสถานที่เล่นให้ปลอดภัยและน่าเชื่อถือเป็นเรื่องสำคัญอันดับต้นๆ ที่ทุกคนควรให้ความใส่ใจ โดยเฉพาะยุคนี้ที่เว็บไซต์และแพลตฟอร์มต่างๆ มีมากมาย ก่อนจะตัดสินใจสมัครหรือฝากเงิน ควรตรวจสอบให้ถี่ถ้วนว่ามีใบอนุญาตถูกต้องตามกฎหมายหรือไม่ และมีรีวิวจากผู้ใช้งานจริงที่ชัดเจน ยิ่งถ้าเป็นเว็บที่เปิดมานาน มีระบบบริการลูกค้าที่ตอบไว และมีการชำระเงินที่โปร่งใส ยิ่งน่าไว้วางใจมากยิ่งขึ้น ความปลอดภัยของข้อมูลส่วนตัวก็เป็นอีกจุดที่ห้ามมองข้าม เลือกที่ใช้ระบบเข้ารหัสที่ดี และมีนโยบายปกป้องข้อมูลที่ชัดเจน อย่าลืมเช็คเงื่อนไขการถอนเงินให้ละเอียด เพราะบางที่อาจมีข้อกำหนดซับซ้อนจนทำให้เสียเวลา จำไว้เสมอว่า การเลือกแหล่งที่น่าเชื่อถือคือก้าวแรกที่ช่วยให้คุณสนุกได้อย่างสบายใจและลดความเสี่ยงในการโดนหลอก

    สัญญาณเตือนเว็บเสี่ยงที่ต้องหลีกเลี่ยง

    การเลือกสถานที่เล่นให้ปลอดภัยและน่าเชื่อถือเป็นสิ่งสำคัญอันดับแรกสำหรับนักเดิมพันออนไลน์ ก่อนตัดสินใจสมัครสมาชิก ควรตรวจสอบว่าเว็บไซต์มีใบอนุญาตจากหน่วยงานที่มีชื่อเสียง เช่น องค์กรสากลหรือหน่วยงานรัฐบาลที่เกี่ยวข้อง นอกจากนี้ ควรมองหาสัญลักษณ์รับรองความปลอดภัยและระบบเข้ารหัสข้อมูลที่ทันสมัย เพื่อป้องกันข้อมูลส่วนตัวและการทำธุรกรรมทางการเงินของคุณ

    อย่ามองข้ามรีวิวจากผู้เล่นจริง เพราะประสบการณ์ของผู้อื่นคือกระจกสะท้อนความน่าเชื่อถือของเว็บนั้น

    การตรวจสอบประวัติและชื่อเสียงของแพลตฟอร์ม จะช่วยให้คุณหลีกเลี่ยงเว็บโกงหรือมิจฉาชีพได้ โดยให้สังเกตจาก:

    • อายุการเปิดให้บริการที่ยาวนาน
    • การมีระบบฝาก-ถอนที่รวดเร็วและโปร่งใส
    • บริการลูกค้าสัมพันธ์ที่ตอบสนองตลอด 24 ชั่วโมง

    การเลือกเล่นกับเว็บที่ได้รับมาตรฐานสากลไม่เพียงสร้างความมั่นใจ แต่ยังมอบประสบการณ์ที่สนุกและปลอดภัยอย่างแท้จริง

    เช็คใบอนุญาตและรีวิวจากผู้ใช้จริง

    การเลือกสถานที่เล่นให้ปลอดภัยและน่าเชื่อถือเป็นขั้นตอนสำคัญที่ช่วยลดความเสี่ยงจากปัญหาการโกงหรือข้อมูลรั่วไหล ผู้เล่นควรตรวจสอบใบอนุญาตจากหน่วยงานที่ได้รับการยอมรับในระดับสากล รวมถึงอ่านรีวิวจากผู้ใช้งานจริงในชุมชนออนไลน์ เว็บไซต์เกมที่ได้รับมาตรฐานสากลมักมีระบบฝาก-ถอนที่รวดเร็วและโปร่งใส สิ่งที่ควรพิจารณาเพิ่มเติมมีดังนี้

    • ดูประวัติการเปิดให้บริการและอายุของเว็บไซต์
    • ตรวจสอบการเข้ารหัส SSL และระบบรักษาความปลอดภัยข้อมูลส่วนตัว
    • สอบถามช่องทางติดต่อฝ่ายบริการลูกค้าที่ตอบสนองตลอด 24 ชั่วโมง

    เว็บบาคาร่า

    นอกจากนี้ เว็บที่น่าเชื่อถือจะไม่กำหนดเงื่อนไขการถอนเงินที่ซับซ้อนหรือมีค่าใช้จ่ายแอบแฝง ผู้เล่นควรหลีกเลี่ยงเว็บที่โฆษณาเกินจริงหรือไม่แสดงที่อยู่บริษัทอย่างชัดเจน การเลือกที่ปลอดภัยช่วยให้ประสบการณ์การเล่นเป็นไปอย่างราบรื่นและปราศจากความกังวล

    ระบบฝาก-ถอนที่รวดเร็วและโปร่งใส

    การเลือกสถานที่เล่นให้ปลอดภัยและน่าเชื่อถือเป็นขั้นตอนแรกที่สำคัญที่สุดสำหรับนักพนันออนไลน์ทุกคน ตรวจสอบใบอนุญาตจากองค์กรที่มีชื่อเสียง เช่น PAGCOR หรือ MGA ก่อนสมัครสมาชิกทุกครั้ง สังเกตสัญญาณความน่าเชื่อถือง่ายๆ ดังนี้

    • มีรีวิวจากผู้ใช้จริงในเว็บบอร์ดหรือโซเชียลมีเดีย
    • ระบบฝาก-ถอนรวดเร็ว ไม่มีข้ออ้างยืดเยื้อ
    • แจ้งข้อกำหนดและเงื่อนไขโปรโมชันอย่างโปร่งใส ไม่มีข้อความกำกวม

    หลีกเลี่ยงเว็บที่ชวนเล่นทางไลน์ส่วนตัวหรือไม่มีข้อมูลติดต่อชัดเจน เพราะความปลอดภัยของเงินและข้อมูลส่วนตัวของคุณต้องมาก่อนความสนุกเสมอ

    รูปแบบการเดิมพันที่คุณต้องรู้

    การเดิมพันในยุคดิจิทัลมีรูปแบบที่หลากหลายและน่าตื่นเต้น ซึ่งนักพนันทุกคนจำเป็นต้องรู้จักเพื่อเพิ่มโอกาสในการชนะ หนึ่งในรูปแบบที่ได้รับความนิยมสูงสุดคือ การเดิมพันแบบสด ที่ให้คุณวางเดิมพันระหว่างเกมกำลังดำเนินไป ทำให้คุณสามารถวิเคราะห์จังหวะและปรับกลยุทธ์ได้ทันที อีกทั้ง การเดิมพันแบบแฮนดิแคป ก็เป็นทางเลือกที่ทรงพลังสำหรับผู้ที่ต้องการความท้าทาย โดยการต่อแต้มหรือต่อประตูให้ทีมรอง เพื่อสร้างสมดุลและเพิ่มอัตราการจ่ายที่คุ้มค่า อย่าลืมศึกษาแบบเดิมพันแบบทายผลรวมสูง-ต่ำที่ช่วยให้คุณได้กำไรจากการคาดการณ์สกอร์รวม ไม่ว่าคุณจะเป็นมือใหม่หรือมืออาชีพ การเข้าใจรูปแบบเหล่านี้จะช่วยให้คุณครองเกมได้อย่างเหนือชั้นและมั่นใจในทุกการตัดสินใจ

    แทงเจ้ามือ แทงผู้เล่น และผลเสมอต่างกันอย่างไร

    การทำความเข้าใจ รูปแบบการเดิมพันที่คุณต้องรู้ เป็นพื้นฐานสำคัญสำหรับนักพนันทุกคน โดยเฉพาะการเดิมพันแบบ Moneyline ที่ให้คุณเลือกทายผลผู้ชนะแบบตรงไปตรงมา ส่วนการเดิมพันแบบแต้มต่อ (Spread) จะเพิ่มความท้าทายด้วยการบวกหรือลบคะแนนเพื่อสร้างสมดุลระหว่างทีม การเดิมพันสูง/ต่ำ (Over/Under) อีกหนึ่งรูปแบบยอดนิยมที่ให้คุณทายผลรวมคะแนนว่าจะมากกว่าหรือน้อยกว่าเลขที่เจ้ามือกำหนด การเลือกใช้รูปแบบให้เหมาะกับประเภทกีฬาและความเข้าใจของคุณคือกุญแจสู่ความสำเร็จ

    เว็บบาคาร่า

    • Moneyline: ทายผลแพ้ชนะ เหมาะกับมือใหม่
    • Spread: ใช้แต้มต่อเพื่อเพิ่มโอกาสคุ้มค่า
    • Over/Under: เน้นที่ผลรวมสกอร์ ไม่ใช่ผู้ชนะ

    การฝึกฝนวิเคราะห์สถิติและติดตามข่าวสารจะช่วยให้คุณตัดสินใจได้เฉียบคมยิ่งขึ้น

    ห้องถ่ายทอดสดกับระบบอัตโนมัติ เลือกแบบไหนดี

    ในการเดิมพันยุคใหม่ รูปแบบการเดิมพันที่คุณต้องรู้เริ่มต้นจากความเข้าใจเรื่อง “ราคาต่อรอง” ซึ่งเปรียบเสมือนเข็มทิศนำทาง นักพนันรุ่นเก๋ามักเล่าว่าครั้งหนึ่งเขาเคยพลาดท่าเพราะไม่รู้จัก การเดิมพันแบบแฮนดิแคป ที่ทำให้ทีมต่อต้องชนะมากกว่าหนึ่งลูก ต่อมาเขาได้เรียนรู้ การเดิมพันแบบสูง-ต่ำ ซึ่งไม่สนว่าใครชนะ แต่ดูผลรวมประตู และ การเดิมพันแบบเต็มเวลา-ครึ่งแรก ที่ต้องเดาทั้งสองช่วงให้แม่น

    การเสี่ยงโชคทุกครั้งมีเรื่องเล่าที่ซ่อนอยู่เบื้องหลังตัวเลข แล้วเขาก็พบว่าการเดิมพันแบบ 1X2 หรือสามทาง เลือกแค่ชนะ เสมอ หรือแพ้ ก็ให้ความตื่นเต้นไม่แพ้กัน สุดท้ายเขาเข้าใจว่าไม่ว่าจะเลือกแบบไหน จุดร่วมสำคัญคือต้องรู้จักรูปแบบก่อนลงมือ

    • แฮนดิแคป — ทีมต่อต้องชนะตามสกอร์ที่กำหนด
    • สูง-ต่ำ — ทายผลรวมประตูของทั้งสองฝ่าย
    • 1X2 — เลือกผลการแข่งขันสามทาง

    อัตราจ่ายและคอมมิชชั่นที่ส่งผลต่อกำไร

    การเดิมพันในยุคดิจิทัลมีรูปแบบหลากหลายที่นักพนันยุคใหม่ต้องรู้ เพื่อเพิ่มโอกาสในการทำกำไรและลดความเสี่ยง รูปแบบการเดิมพันที่นิยมที่สุดคือการแทงบอลและคาสิโนสด ซึ่งรวมถึงการเดิมพันแบบเดี่ยว (Single Bet) ที่เน้นความแม่นยำในคู่เดียว หรือแบบสเต็ป (Accumulator) ที่ให้อัตราจ่ายสูงแต่เสี่ยงขึ้นตามจำนวนทีม นอกจากนี้ การเดิมพันแบบแฮนดิแคป (Handicap) ช่วยปรับสมดุลระหว่างทีมที่ต่างชั้น ขณะที่การเดิมพันสูง/ต่ำ (Over/Under) เหมาะกับคนที่วิเคราะห์สกอร์รวม

    สำหรับสายคาสิโน ต้องรู้จัก การเดิมพันโต๊ะสด (Live Table Games) ที่ถ่ายทอดแบบเรียลไทม์ เช่น บาคาร่า เสือมังกร หรือรูเล็ต โดยผู้เล่นสามารถเลือกเดิมพันแบบปกติหรือแบบข้างเคียง (Side Bet) เพื่อรับโบนัสพิเศษ นอกจากนี้ยังมีรูปแบบสล็อตออนไลน์และยิงปลาที่ใช้เทคนิคการหมุนและอัตราจ่ายแตกต่างกันไป

    • Single Bet: เลือกผลเดียว รับผิดชอบแค่คู่นั้น
    • Accumulator: ต่อยอดหลายคู่ เพิ่มอัตราทวีคูณ
    • Live Bet: วางเดิมพันขณะแข่งขัน เปลี่ยนกลยุทธ์ได้ทันที

    เทคนิคเพิ่มโอกาสชนะสำหรับมือใหม่

    สมมติว่าคุณเพิ่งก้าวเท้าเข้าสู่โลกของเกมแนวโชคหรือกลยุทธ์ สิ่งแรกที่มือใหม่มักลืมคือ การจัดการเงินทุนอย่างมีสติ เพราะอารมณ์มักจะนำพาให้เดิมพันเกินตัว เล่าเรื่องของคุณตั้งแต่วันแรกที่คุณพลาดเพราะความใจร้อน จากนั้นค่อยๆ เรียนรู้ที่จะเริ่มจากเกมที่เข้าใจง่าย และสังเกตจังหวะการเล่นของผู้มีประสบการณ์รอบข้าง เทคนิคสำคัญคือการตั้งเป้าหมายชัดเจน เมื่อถึงจุดที่กำหนดให้หยุดทันทีแม้จะกำลังได้หรือเสีย การทำเช่นนี้จะสร้างวินัยและช่วยให้คุณสนุกกับเกมได้ยาวนานขึ้น จุดเปลี่ยนสำคัญอีกประการคือการรู้จักเลือกช่วงเวลาและโต๊ะที่เหมาะ พร้อมกับการซ้อมเล่นฟังก์ชันทดลองก่อนลงเดิมพันจริง เพื่อให้ร่างกายและสมองปรับตัวกับความกดดัน เพิ่มโอกาสชนะสำหรับมือใหม่ จึงไม่ใช่แค่ดวง แต่คือการเรียนรู้จากความผิดพลาดของตัวเองในทุกก้าว

    อ่านเค้าไพ่ให้เป็นพื้นฐานก่อนเดิมพัน

    มือใหม่หัดเล่นเกมต้องเริ่มจากการศึกษาไกด์และคลิปอธิบายกลไกหลักก่อนลงสนามจริง เสริมด้วยการฝึกในโหมดทดลองเพื่อคุ้นเคยจังหวะและข้อจำกัดของตัวละคร หลีกเลี่ยงการเดิมพันรวดเดียวหมดเงิน ควรจัดลำดับความเสี่ยงด้วยการแบ่งทุนเป็นส่วนเล็กๆ เพื่อยืดระยะเวลาเล่นและเพิ่มโอกาสในการอ่านเกม การมีสติและไม่โลภคืออาวุธสำคัญที่สุดของคุณ เริ่มจากเป้าหมายเล็กๆ เช่น ชนะติดต่อกันสองครั้งก่อนค่อยเพิ่มเงินเดิมพัน วิธีนี้ช่วยสร้างความมั่นใจโดยไม่เสียหายหนัก

    จัดการเงินทุนด้วยสูตรเดินเงินยอดนิยม

    สำหรับมือใหม่ที่อยากเพิ่มโอกาสชนะในเกม กุญแจสำคัญคือการฝึกฝนกลยุทธ์พื้นฐานก่อนเริ่มเสี่ยงเดิมพันจริง เทคนิคเพิ่มโอกาสชนะสำหรับมือใหม่ เริ่มจากการเลือกโต๊ะที่มีเกมง่าย เช่น ไฮโลหรือบาคาร่า ที่มีรูปแบบการชนะชัดเจน ควรกำหนดงบประมาณในแต่ละรอบและหยุดเมื่อถึงขีดจำกัด การสังเกตสถิติย้อนหลังช่วยให้เห็นแนวโน้ม อย่าลุ้นตามอารมณ์ แต่ให้วางแผนเดินหมากอย่างมีสติ

    เว็บบาคาร่า

    “มือใหม่ที่ชนะได้คือคนที่รู้จักหยุดเล่นในเวลาที่ได้กำไร”

    เว็บบาคาร่า

    • เริ่มจากเดิมพันเงินน้อยเพื่อลดความเสี่ยง
    • ศึกษากติกาและรูปแบบการจ่ายเงินให้ถ่องแท้
    • เลือกเกมที่มีอัตราเสียเปรียบเจ้ามือต่ำ

    หลีกเลี่ยงกับดักที่ทำให้เสียเงินโดยไม่จำเป็น

    สำหรับมือใหม่ที่ต้องการเพิ่มโอกาสชนะในเกม ควรเริ่มต้นจากการศึกษาเกมให้เข้าใจอย่างถ่องแท้ โดยเฉพาะกฎและกลไกหลักที่ส่งผลต่อผลลัพธ์ เทคนิคเริ่มต้นสำหรับมือใหม่ ที่สำคัญคือการจัดการเงินทุนอย่างมีวินัย กำหนดงบประมาณต่อวันและไม่ควรเดิมพันเกินครึ่งหนึ่งของเงินที่มี นอกจากนี้ ควรหลีกเลี่ยงการเดิมพันตามอารมณ์หรือความเชื่อโชคลาง ให้เน้นการวิเคราะห์สถิติและรูปแบบเกมแทน

    เกมพิเศษและฟีเจอร์เด่นที่ไม่ควรพลาด

    นอกจากฟีเจอร์พื้นฐานแล้ว สิ่งที่ทำให้คาสิโนออนไลน์น่าสนใจก็คือ เกมพิเศษและฟีเจอร์เด่นที่ไม่ควรพลาด เช่น ฟรีสปินที่ซื้อได้, ฟีเจอร์แจ็คพอตที่เพิ่มขึ้นทุกครั้งที่หมุน, หรือเกมที่มีตัวคูณสูงถึง x20,000 ซึ่งหาไม่ได้จากที่อื่น บางเกมยังมีโหมด “นรกแตก” ที่เพิ่มความมันส์แบบก้าวกระโดด ยิ่งรู้จักเลือกฟีเจอร์เด่น ก็ยิ่งเพิ่มโอกาสทำเงินได้อย่างไม่น่าเชื่อ อย่าลืมมองหาเกมที่มีสัญลักษณ์ “Megaways” หรือระบบ Cascading Reels ที่จะทำให้รางวัลต่อเนื่องไม่หยุด

    โต๊ะ VIP กับความต่างที่สัมผัสได้

    ในโลกของเกมที่น่าตื่นเต้น เกมพิเศษอย่าง สล็อตสายฟ้า มอบประสบการณ์ที่ต่างออกไป เมื่อกดปุ่มหมุน เส้นการจ่ายเงินจะระเบิดเป็นสีสัน พร้อมฟีเจอร์เด่นที่ต้องลอง อย่างฟรีสปินที่มาพร้อมตัวคูณไร้ขีดจำกัด และระบบซื้อโบนัสที่ทำให้คุณลุ้นรางวัลใหญ่ได้ทันที ไม่ต้องรอให้สัญลักษณ์เรียงตัวตามธรรมชาติ

    ฟังก์ชันบันทึกสถิติช่วยนักเล่นวิเคราะห์เกม

    เกมพิเศษและฟีเจอร์เด่นที่ไม่ควรพลาดในแพลตฟอร์มปัจจุบันคือการได้สัมผัสกับระบบ บาคาร่า เว็บตรง โบนัสสะสมแต้มที่คุ้มค่า ซึ่งนักเดิมพันสามารถแลกเป็นเครดิตฟรีหรือของรางวัลพิเศษได้ทุกเดือน ยิ่งคุณเล่นมาก ยิ่งได้รับสิทธิพิเศษเพิ่มขึ้น ไม่ว่าจะเป็นฟีเจอร์แจ็กพอตแบบโปรเกรสซีฟที่ลุ้นรับเงินรางวัลก้อนโต หรือโหมดทดลองเล่นก่อนเดิมพันจริงที่ช่วยให้คุณวางแผนกลยุทธ์ได้อย่างมั่นใจ ไม่มีอะไรที่คุ้มค่าไปกว่าการได้รับผลตอบแทนจากการลงทุนที่ชาญฉลาด

    • โหมดทดลองเล่นฟรี ไม่ต้องฝากเงิน
    • แจ็กพอตสะสมที่จ่ายจริงทุกวัน
    • โปรโมชั่นคืนยอดเสียรายสัปดาห์

    โบนัสและโปรโมชั่นเฉพาะสำหรับเกมไพ่ทองคำ

    เมื่อพูดถึง เกมพิเศษและฟีเจอร์เด่นที่ไม่ควรพลาด สิ่งที่ทำให้ประสบการณ์การเล่นโดดเด่นคือการนำเสนอระบบฟรีสปินแบบ Multiplier สะสมที่เพิ่มโอกาสชนะสูงขึ้นทุกครั้งที่วงล้อหมุน นอกจากนี้ฟังก์ชัน Buy Feature ยังช่วยให้ผู้เล่นกระโดดเข้าสู่โหมดโบนัสได้ทันทีโดยไม่ต้องรอสัญลักษณ์กระจาย ซึ่งสร้างความตื่นเต้นและความคุ้มค่าในทุกเกมที่ถูกออกแบบมาเพื่อการจ่ายเงินแบบ Megaways ที่เปลี่ยนจำนวนเพย์ไลน์ได้มากถึง 117,649 วิธี

    ข้อควรระวังในการใช้บริการ

    การใช้บริการต่างๆ ควรให้ความสำคัญกับ ข้อควรระวังในการใช้บริการ เสมอ โดยเฉพาะการตรวจสอบเงื่อนไขและข้อกำหนดก่อนตกลงทำธุรกรรม ควรหลีกเลี่ยงการให้ข้อมูลส่วนตัวที่สำคัญ เช่น รหัสผ่านหรือเลขบัญชี กับบุคคลที่ไม่น่าเชื่อถือ และควรเก็บหลักฐานการชำระเงินไว้เป็นหลักฐานกรณีมีปัญหา นอกจากนี้ การศึกษารีวิวจากผู้ใช้จริงจะช่วยให้ตัดสินใจได้อย่างรอบคอบ สำหรับบริการออนไลน์ ควรระวังลิงก์หรือไฟล์แนบที่น่าสงสัยเพื่อป้องกันมัลแวร์ การใช้บริการจากแหล่งที่เชื่อถือได้เท่านั้นจะช่วยลดความเสี่ยงด้าน ความปลอดภัย และสร้างประสบการณ์ที่ดีในการใช้บริการ

    ปัญหาด้านเทคนิคที่อาจเกิดขึ้นและวิธีแก้

    เมื่อคุณต้องการใช้บริการใดๆ สิ่งสำคัญที่สุดคือ ข้อควรระวังในการใช้บริการ เพื่อไม่ให้เกิดปัญหาที่ทำให้เสียทั้งเงินและเวลา ลองนึกภาพว่าคุณกำลังจะซื้อแพ็กเกจทัวร์สุดคุ้ม แต่ดันลืมเช็กรีวิวของบริษัท จนเจอโปรแกรมเที่ยวที่ไม่ได้ดั่งใจ แบบนี้คงน่าเสียดาย ก่อนตัดสินใจ อ่านเงื่อนไขให้ละเอียด อย่าเพิ่งหลงเชื่อข้อความโฆษณาเกินจริง ควรตรวจสอบค่าธรรมเนียมแอบแฝง นโยบายการยกเลิก และระยะเวลาให้บริการที่ชัดเจน

    • เช็ครีวิวจากผู้ใช้จริง
    • สอบถามพนักงานทุกข้อสงสัย
    • เก็บหลักฐานการชำระเงินไว้

    ควบคุมอารมณ์และเล่นอย่างมีสติ

    ก่อนใช้บริการใดก็ตาม สิ่งสำคัญคือต้องอ่านเงื่อนไขและข้อกำหนดอย่างละเอียด หลายคนมักมองข้ามรายละเอียดเล็กๆ น้อยๆ จนเจอค่าธรรมเนียมแอบแฝงหรือข้อผูกมัดระยะยาว โดยเฉพาะกับบริการสมัครสมาชิกออนไลน์ที่มักมีเงื่อนไขการยกเลิกที่ซับซ้อน ข้อควรระวังในการใช้บริการ ที่พบบ่อยที่สุดคือการไม่ตรวจสอบความน่าเชื่อถือของแหล่งที่มา

    ลองนึกภาพคุณกดสมัครแอปพลิเคชันฟรี แต่กลับถูกเรียกเก็บเงินรายเดือนโดยไม่รู้ตัว เพราะไม่ได้อ่านว่าโปรโมชันฟรีแค่ 7 วันแรก

    • ตรวจสอบค่าใช้จ่ายแอบแฝงและวันต่ออายุอัตโนมัติ
    • อ่านนโยบายการคืนเงินและการยกเลิกสัญญา
    • หลีกเลี่ยงการให้ข้อมูลส่วนตัวเกินความจำเป็น โดยเฉพาะเลขบัตรประชาชน

    คำถาม: หากเจอค่าธรรมเนียมที่ไม่แจ้งล่วงหน้า ทำอย่างไร?
    คำตอบ: ให้เก็บหลักฐานการสมัครและแจ้งสายด่วนคุ้มครองผู้บริโภค 1185 ทันที เพื่อดำเนินการโต้แย้งค่าใช้จ่าย

    รู้กฎที่เกี่ยวข้องกับการแจกไพ่และการเดิมพัน

    การใช้บริการต่าง ๆ เช่น ร้านอาหาร โรงแรม หรือแพลตฟอร์มออนไลน์ ต้องมีสติและตรวจสอบรายละเอียดให้รอบคอบ เพื่อหลีกเลี่ยงค่าใช้จ่ายแอบแฝงหรือข้อตกลงที่ไม่เป็นธรรม ข้อควรระวังในการใช้บริการ ที่สำคัญคืออ่านเงื่อนไขให้ละเอียดก่อนตัดสินใจ โดยเฉพาะเรื่องการยกเลิกและการคืนเงิน อย่าลืมถ่ายรูปหลักฐานหรือเก็บสลิปไว้ทุกครั้ง หากมีข้อสงสัยให้สอบถามพนักงานทันที ระวังมิจฉาชีพที่แอบอ้างเป็นตัวแทนบริการ ควรใช้ช่องทาง官方เท่านั้น