WP Hide & Security Enhancer - Version 1.6.0.5

Version Description

  • New Setup interface with helps and hints on how to use the plugin.
  • New Sample Setup, which deploy a basic set-up of plugin options
  • Remove internal wp_mail and rely on WordPress core
  • Improved FAQ area
  • Updated base language file
Download this release

Release Info

Developer nsp-code
Plugin Icon 128x128 WP Hide & Security Enhancer
Version 1.6.0.5
Comparing to
See all releases

Code changes from version 1.6.0.4 to 1.6.0.5

assets/css/wph.css CHANGED
@@ -114,8 +114,24 @@ table.wph_input input[type=text]:focus,table.wph_input textarea:focus,table.wph_
114
  h2.subtitle {font-size: 15px; font-style: italic; font-weight: bold}
115
  .wrap .example { color: #666666; font-size: 11px; font-weight: bold}
116
 
117
-
118
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
 
120
  @media screen and (max-width: 650px) {
121
  #info_box {display: block; padding: 20px}
114
  h2.subtitle {font-size: 15px; font-style: italic; font-weight: bold}
115
  .wrap .example { color: #666666; font-size: 11px; font-weight: bold}
116
 
117
+ .start-container { background-color: #fff; border-left: 3px solid #0073aa; overflow: hidden; padding: 25px 20px 20px 30px; position: relative;}
118
+ .start-container::before { color: #eee2ec; content: "\f111"; content: "\f332"; display: block; font-family: dashicons; font-size: 232px; line-height: 1; position: absolute; right: 0; text-align: center; top: 0; width: 1em; z-index: 1}
119
+ .start-container.licence-key::before { content: "\f112"; }
120
+ .start-container .text {position: relative;z-index: 2}
121
+ .start-container h2, .start-container p {position: relative}
122
+ .start-container input[type="text"] {width: 740px; max-width: 100%;}
123
+ .start-container .warning {color: #ca4a1f}
124
+
125
+ .start-container.title { padding: 0px 20px 0px 30px; }
126
+ .start-container.title.warning {border-color: #dc3232; }
127
+ .start-container.title.success {border-color: #0ead69}
128
+ .start-container.title::before {font-size: 90px; content: "\f118";}
129
+ .start-container.title.warning::before {content: "\f534";}
130
+ .start-container.title.success::before {content: "\f147";}
131
+
132
+ .container-description {padding-left: 35px; padding-bottom: 30px}
133
+ .container-description .highlight{background-color: #f8ff24;}
134
+ .container-description img {max-width: 100%}
135
 
136
  @media screen and (max-width: 650px) {
137
  #info_box {display: block; padding: 20px}
assets/js/wph.js CHANGED
@@ -61,6 +61,21 @@
61
  {
62
  jQuery( element ).closest('.wph_input').find('.entry input.text').val( '' );
63
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
 
65
  }
66
 
61
  {
62
  jQuery( element ).closest('.wph_input').find('.entry input.text').val( '' );
63
  }
64
+
65
+
66
+ confirm_sample_setup()
67
+ {
68
+
69
+ var agree = confirm( wph_vars.confirm_message );
70
+ if (agree)
71
+ {
72
+ jQuery('#wph-run-sample-setup').submit();
73
+ }
74
+ else
75
+ {
76
+ return false ;
77
+ }
78
+ }
79
 
80
  }
81
 
compatibility/themes/buddyboss-theme.php CHANGED
@@ -19,7 +19,7 @@
19
 
20
  static function setup_theme()
21
  {
22
- remove_filter('login_redirect', 'buddyboss_redirect_previous_page');
23
  }
24
 
25
  }
19
 
20
  static function setup_theme()
21
  {
22
+ //remove_filter('login_redirect', 'buddyboss_redirect_previous_page');
23
  }
24
 
25
  }
include/admin-interface.class.php CHANGED
@@ -23,6 +23,14 @@
23
 
24
  }
25
 
 
 
 
 
 
 
 
 
26
 
27
  function _render($interface_name)
28
  {
23
 
24
  }
25
 
26
+
27
+ function _setup_interface()
28
+ {
29
+
30
+ include ( WPH_PATH . '/include/admin-interfaces/_setup.php' );
31
+
32
+ }
33
+
34
 
35
  function _render($interface_name)
36
  {
include/admin-interfaces/setup.class.php ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class WPH_setup_interface
7
+ {
8
+
9
+ var $wph;
10
+ var $functions;
11
+
12
+ function __construct()
13
+ {
14
+ global $wph;
15
+ $this->wph = &$wph;
16
+
17
+ $this->functions = new WPH_functions();
18
+
19
+ add_action( 'admin_init', array ( $this, 'run_sample_setup') );
20
+ add_action( 'admin_notice', array( $this, 'admin_notices' ) );
21
+
22
+ }
23
+
24
+ function admin_print_styles()
25
+ {
26
+ wp_enqueue_style( 'tipsy.css', WPH_URL . '/assets/css/tipsy.css');
27
+
28
+ wp_register_style('WPHStyle', WPH_URL . '/assets/css/wph.css');
29
+ wp_enqueue_style( 'WPHStyle');
30
+
31
+ }
32
+
33
+
34
+ function admin_print_scripts()
35
+ {
36
+ wp_enqueue_script( 'jquery');
37
+ wp_register_script('wph', WPH_URL . '/assets/js/wph.js');
38
+
39
+ wp_enqueue_script('jquery.tipsy.js', WPH_URL . '/assets/js/jquery.tipsy.js' );
40
+
41
+ // Localize the script with new data
42
+ $translation_array = array(
43
+ 'confirm_message' => __('Any existing options values will be overwritten, are you sure you want to continue?', 'wp-hide-security-enhancer')
44
+ );
45
+ wp_localize_script( 'wph', 'wph_vars', $translation_array );
46
+
47
+ wp_enqueue_script( 'wph');
48
+
49
+ }
50
+
51
+
52
+
53
+ function admin_notices()
54
+ {
55
+ if( isset( $_GET['sample-setup-completed'] ) && $_GET['sample-setup-completed'] == 'true' )
56
+ {
57
+
58
+ if( $found_errors === FALSE )
59
+ echo "<div class='notice notice-success'><p>". __('Settings saved', 'wp-hide-security-enhancer') ."<br />" . __('Remember, site cache clear is required.', 'wp-hide-security-enhancer') ."</p></div>";
60
+ }
61
+
62
+
63
+ }
64
+
65
+
66
+ function run_sample_setup()
67
+ {
68
+ if ( ! isset ( $_POST['wph-run-sample-setup'] ) )
69
+ return FALSE;
70
+
71
+ $nonce = $_POST['wph-run-sample-setup-nonce'];
72
+ if ( ! wp_verify_nonce( $nonce, 'wph-run-sample-setup' ) )
73
+ return FALSE;
74
+
75
+ //only for admins
76
+ If ( ! current_user_can ( 'manage_options' ) )
77
+ return FALSE;
78
+
79
+ $_settings = array(
80
+ 'new_theme_path' => $this->functions->random_word(),
81
+ 'new_theme_child_path' => $this->functions->random_word(),
82
+
83
+ 'new_include_path' => $this->functions->random_word(),
84
+ 'new_content_path' => $this->functions->random_word(),
85
+ 'new_plugin_path' => $this->functions->random_word(),
86
+ 'new_upload_path' => $this->functions->random_word(),
87
+ 'new_wp_comments_post' => $this->functions->random_word() . ".php",
88
+ 'remove_generator_meta' => 'yes',
89
+ 'remove_other_generator_meta' => 'yes',
90
+ 'remove_wlwmanifest' => 'yes',
91
+ 'remove_header_link' => 'yes',
92
+ 'remove_html_comments' => 'yes'
93
+ );
94
+ $this->wph->settings['module_settings'] = $_settings;
95
+
96
+ //generate a new write_check_string
97
+ $write_check_string = time() . '_' . mt_rand(100, 99999);
98
+ $this->wph->settings['write_check_string'] = $write_check_string;
99
+
100
+ //update the settings
101
+ $this->functions->update_settings($this->wph->settings);
102
+
103
+ //trigger the settings changed action
104
+ do_action('wph/settings_changed', 'wp-hide', FALSE );
105
+
106
+ //redirect
107
+ $new_admin_url = $this->functions->get_module_item_setting('admin_url' , 'admin');
108
+
109
+ //check if the rewrite applied
110
+ if ( ! empty ( $new_admin_url ) && ! $this->rewrite_rules_applied() )
111
+ $new_admin_url = '';
112
+
113
+ if(!empty($new_admin_url) && $this->is_permalink_enabled())
114
+ $new_location = trailingslashit( home_url() ) . $new_admin_url . "/admin.php?page=wp-hide";
115
+ else
116
+ $new_location = trailingslashit( site_url() ) . "wp-admin/admin.php?page=wp-hide";
117
+
118
+
119
+ $new_location .= '&sample-setup-completed=true';
120
+
121
+ wp_redirect($new_location);
122
+ die();
123
+
124
+ }
125
+
126
+
127
+ function _render()
128
+ {
129
+
130
+ //mark the section as being viwed
131
+ update_option( 'wph-first-view', 'false' );
132
+
133
+
134
+
135
+ ?>
136
+ <div id="wph" class="wrap">
137
+ <h1>WP Hide & Security Enhancer - <?php _e( "Setup", 'wp-hide-security-enhancer' ) ?></h1>
138
+
139
+ <?php echo $this->functions->get_ad_banner(); ?>
140
+
141
+ <?php
142
+
143
+ if($this->wph->server_htaccess_config === FALSE && $this->wph->server_web_config === FALSE)
144
+ {
145
+ ?>
146
+ <div class="start-container title warning">
147
+ <h2><?php _e( "System notice !", 'wp-hide-security-enhancer' ) ?></h2>
148
+ </div>
149
+ <div class="container-description">
150
+ <p><?php _e( "Your site runs on a server type which the current version can't create the required rewrite data, please check with", 'wp-hide-security-enhancer' ) ?> <span class="wph-pro">PRO</span> <?php _e( "version at", 'wp-hide-security-enhancer' ) ?> <a target="_blank" href="https://www.wp-hide.com/wp-hide-pro-now-available/">WP-Hide PRO</a></p>
151
+ <p><?php _e( "This basic version can work with Apache, LiteSpeed, IIS, Nginx set as reverse proxy for Apache, your site runs", 'wp-hide-security-enhancer' ) ?> <b><?php echo $_SERVER['SERVER_SOFTWARE'] ?></b></p>
152
+ </div>
153
+
154
+
155
+ <?php
156
+ }
157
+
158
+
159
+ if( isset( $_GET['sample-setup-completed'] ) && $_GET['sample-setup-completed'] == 'true' )
160
+ {
161
+ ?>
162
+ <div class="start-container title success">
163
+ <h2><?php _e( "Sample Setup deployed !", 'wp-hide-security-enhancer' ) ?></h2>
164
+ </div>
165
+ <div class="container-description">
166
+ <p><?php _e( "A basic plugin set-up has been deployed, to get you started. A site cache clear is required to ensure the updates are reflected on the front side", 'wp-hide-security-enhancer' ) ?>. </p>
167
+ <p><?php _e( "Check with the front side to ensure everything is working. Further adjustments to other options are recommended", 'wp-hide-security-enhancer' ) ?>. </p>
168
+ </div>
169
+
170
+ <p><br /><br /><br /></p>
171
+ <?php
172
+ }
173
+
174
+ ?>
175
+
176
+ <div class="start-container title">
177
+ <h2><?php _e( "Getting Started", 'wp-hide-security-enhancer' ) ?></h2>
178
+ </div>
179
+ <div class="container-description">
180
+ <p><b>WP Hide & Security Enhancer</b> <?php _e( "plugin helps to hide your WordPress, theme, and plugins", 'wp-hide-security-enhancer' ) ?>. <?php _e( "This improves the site security as hackers' boots can't exploit the vulnerabilities of your site, as not being aware of the user code", 'wp-hide-security-enhancer' ) ?>. <?php _e( "Daily, more vulnerabilities are found", 'wp-hide-security-enhancer' ) ?> <a href="https://wpvulndb.com/" target="_blank">WPVulndb.com/</a>, <?php _e( "but using WP Hide & Security Enhancer you will be perfectly safe", 'wp-hide-security-enhancer' ) ?> !</p>
181
+
182
+ </div>
183
+ <div class="start-container title">
184
+ <h2><?php _e( "Basic functionality", 'wp-hide-security-enhancer' ) ?></h2>
185
+ </div>
186
+ <div class="container-description">
187
+ <p><?php _e( "The basic principle of the plugin is to change default assets URLs, remove or change specific HTML elements, and disable unused services. This isn't an automated process, so it needs to be done manually while getting feedback on the front side to ensure everything is still functional. No file and directory are being changed anywhere, everything is processed on the fly using output buffering and filters", 'wp-hide-security-enhancer' ) ?>..</p>
188
+
189
+ <p><?php _e( "A default directory structure for WordPress appears like this on outputted HTML", 'wp-hide-security-enhancer' ) ?>:<br />
190
+ https://--domain--<span class="highlight">/wp-includes/</span>css/dashicons.min.css &nbsp;&nbsp;&nbsp;&nbsp;or &nbsp;&nbsp;&nbsp;&nbsp; https://--domain--<span class="highlight">/wp-content/</span>themes/pub/wporg-plugins/css/style.css
191
+ <br /><?php _e( "So the most important first step, is to change the default /wp-content/ and /wp-includes/ to something else. This can be done at", 'wp-hide-security-enhancer' ) ?> <a href="admin.php?page=wp-hide-rewrite&component=wp-includes">WP Includes</a> <?php _e( "and", 'wp-hide-security-enhancer' ) ?> <a href="admin.php?page=wp-hide-rewrite&component=wp-content">WP Content</a>
192
+ <br /><?php _e( "Further adjustments to", 'wp-hide-security-enhancer' ) ?> <a href="admin.php?page=wp-hide-rewrite&component=theme">Theme</a>, <a href="admin.php?page=wp-hide-rewrite&component=plugins">Plugins</a>, <a href="admin.php?page=wp-hide-rewrite&component=uploads">Uploads</a> and <a href="admin.php?page=wp-hide-admin">Admin</a> <?php _e( "can be applied", 'wp-hide-security-enhancer' ) ?>.</p>
193
+ <p></p>
194
+ <p><?php _e( "At this point, for all simple sites, the WordPress CMS is already hidden. If using complex themes and plugins, further plugin options adjustments are necessarily or PRO might be required ( for example", 'wp-hide-security-enhancer' ) ?> <a href="https://www.wp-hide.com/how-to-easily-hide-elementor-page-builder/" target="_blank"><?php _e( "hiding Elementor", 'wp-hide-security-enhancer' ) ?></a>, Divi, visual builder etc).
195
+
196
+ <br /><?php _e( "Take the time to understand each option, there are in-line additional help also external description to each of the features. If need additional assistance, use the support forum or contact us. Full description of each option can be found at", 'wp-hide-security-enhancer' ) ?> <a href="https://www.wp-hide.com/documentation_category/plugin-options-explained/" target="_blank"><?php _e( "Documentation", 'wp-hide-security-enhancer' ) ?></a>. </p>
197
+
198
+
199
+ </div>
200
+
201
+ <div class="start-container title">
202
+ <h2><?php _e( "Sample setup", 'wp-hide-security-enhancer' ) ?></h2>
203
+ </div>
204
+ <div class="container-description">
205
+ <p><?php _e( "This creates a simple setup to get you started. The procedure activates some of the basic plugin options. All options will be reset and any existing values will be overwritten, so use with caution. After the procedure, for all simple sites, the WordPress CMS will be already hidden, otherwise further options adjustments will be necessary", 'wp-hide-security-enhancer' ) ?>.</p>
206
+ <form id="wph-run-sample-setup" method="post" action="admin.php?page=wp-hide">
207
+ <p><a href="javascript: void(0)" onclick="return WPH.confirm_sample_setup();" class="button-primary"><?php _e( "Run Sample Setup", 'wp-hide-security-enhancer' ) ?></a></p>
208
+
209
+ <input type="hidden" name="wph-run-sample-setup" value="true" />
210
+ <input type="hidden" name="wph-run-sample-setup-nonce" value="<?php echo wp_create_nonce( 'wph-run-sample-setup' ) ?>" />
211
+ </form>
212
+ </div>
213
+
214
+ <p><br /></p>
215
+
216
+ <div class="start-container">
217
+ <div class="text">
218
+
219
+ <h2><?php _e('Demo Video', 'wp-hide-security-enhancer') ?></h2>
220
+ <p>Sample video on how to fill options and check the changes on outputted HTML.</p>
221
+
222
+ <div id="wph-video" style="max-width: 800px">
223
+ <div style="padding:56.25% 0 0 0;position:relative;">
224
+ <iframe src="https://player.vimeo.com/video/192011678?title=0&byline=0&portrait=0" style="position:absolute;top:0;left:0;width:100%;height:100%;" frameborder="0" allow="autoplay; fullscreen" allowfullscreen></iframe>
225
+ </div>
226
+ </div>
227
+ <script src="https://player.vimeo.com/api/player.js"></script>
228
+
229
+
230
+
231
+ </div>
232
+ </div>
233
+
234
+ <?php
235
+ }
236
+
237
+ }
238
+
239
+
240
+ ?>
include/functions.class.php CHANGED
@@ -529,7 +529,7 @@
529
  */
530
  function set_server_type()
531
  {
532
-
533
  //Allow to set server type through filter
534
  if ( ! empty ( apply_filters( 'wph/core/set_server_type' , '' ) ) )
535
  return;
@@ -1696,7 +1696,12 @@
1696
  . __('This is an automated message to inform that you can always use a recovery link if something go wrong', 'wp-hide-security-enhancer') . ": " . site_url() . '?wph-recovery='. $this->wph->functions->get_recovery_code() . "\n\n"
1697
  . __('Please keep this url to a safe place.', 'wp-hide-security-enhancer') . ".";
1698
  $headers = 'From: '. get_option('blogname') .' <'. get_option('admin_email') .'>' . "\r\n";
1699
- $this->wph->functions->wp_mail( $to, $subject, $message, $headers );
 
 
 
 
 
1700
  }
1701
 
1702
 
@@ -1848,343 +1853,7 @@
1848
  }
1849
  }
1850
 
1851
-
1852
- /**
1853
- * An early instance of WordPress wp_mail core
1854
- * Unable to load pluggable.php where the function exists, as bein loaded using require
1855
- *
1856
- * @param mixed $to
1857
- * @param mixed $subject
1858
- * @param mixed $message
1859
- * @param mixed $headers
1860
- * @param mixed $attachments
1861
- */
1862
- function wp_mail( $to, $subject, $message, $headers = '', $attachments = array() )
1863
- {
1864
- // Compact the input, apply the filters, and extract them back out
1865
-
1866
- /**
1867
- * Filter the wp_mail() arguments.
1868
- *
1869
- * @since 2.2.0
1870
- *
1871
- * @param array $args A compacted array of wp_mail() arguments, including the "to" email,
1872
- * subject, message, headers, and attachments values.
1873
- */
1874
- $atts = apply_filters( 'wp_mail', compact( 'to', 'subject', 'message', 'headers', 'attachments' ) );
1875
-
1876
- if ( isset( $atts['to'] ) ) {
1877
- $to = $atts['to'];
1878
- }
1879
-
1880
- if ( isset( $atts['subject'] ) ) {
1881
- $subject = $atts['subject'];
1882
- }
1883
-
1884
- if ( isset( $atts['message'] ) ) {
1885
- $message = $atts['message'];
1886
- }
1887
-
1888
- if ( isset( $atts['headers'] ) ) {
1889
- $headers = $atts['headers'];
1890
- }
1891
-
1892
- if ( isset( $atts['attachments'] ) ) {
1893
- $attachments = $atts['attachments'];
1894
- }
1895
-
1896
- if ( ! is_array( $attachments ) ) {
1897
- $attachments = explode( "\n", str_replace( "\r\n", "\n", $attachments ) );
1898
- }
1899
- global $phpmailer;
1900
-
1901
- // (Re)create it, if it's gone missing
1902
- if ( ! ( $phpmailer instanceof PHPMailer ) ) {
1903
- require_once ABSPATH . WPINC . '/class-phpmailer.php';
1904
- require_once ABSPATH . WPINC . '/class-smtp.php';
1905
- $phpmailer = new PHPMailer( true );
1906
- }
1907
-
1908
- // Headers
1909
- if ( empty( $headers ) ) {
1910
- $headers = array();
1911
- } else {
1912
- if ( !is_array( $headers ) ) {
1913
- // Explode the headers out, so this function can take both
1914
- // string headers and an array of headers.
1915
- $tempheaders = explode( "\n", str_replace( "\r\n", "\n", $headers ) );
1916
- } else {
1917
- $tempheaders = $headers;
1918
- }
1919
- $headers = array();
1920
- $cc = array();
1921
- $bcc = array();
1922
-
1923
- // If it's actually got contents
1924
- if ( !empty( $tempheaders ) ) {
1925
- // Iterate through the raw headers
1926
- foreach ( (array) $tempheaders as $header ) {
1927
- if ( strpos($header, ':') === false ) {
1928
- if ( false !== stripos( $header, 'boundary=' ) ) {
1929
- $parts = preg_split('/boundary=/i', trim( $header ) );
1930
- $boundary = trim( str_replace( array( "'", '"' ), '', $parts[1] ) );
1931
- }
1932
- continue;
1933
- }
1934
- // Explode them out
1935
- list( $name, $content ) = explode( ':', trim( $header ), 2 );
1936
-
1937
- // Cleanup crew
1938
- $name = trim( $name );
1939
- $content = trim( $content );
1940
-
1941
- switch ( strtolower( $name ) ) {
1942
- // Mainly for legacy -- process a From: header if it's there
1943
- case 'from':
1944
- $bracket_pos = strpos( $content, '<' );
1945
- if ( $bracket_pos !== false ) {
1946
- // Text before the bracketed email is the "From" name.
1947
- if ( $bracket_pos > 0 ) {
1948
- $from_name = substr( $content, 0, $bracket_pos - 1 );
1949
- $from_name = str_replace( '"', '', $from_name );
1950
- $from_name = trim( $from_name );
1951
- }
1952
-
1953
- $from_email = substr( $content, $bracket_pos + 1 );
1954
- $from_email = str_replace( '>', '', $from_email );
1955
- $from_email = trim( $from_email );
1956
-
1957
- // Avoid setting an empty $from_email.
1958
- } elseif ( '' !== trim( $content ) ) {
1959
- $from_email = trim( $content );
1960
- }
1961
- break;
1962
- case 'content-type':
1963
- if ( strpos( $content, ';' ) !== false ) {
1964
- list( $type, $charset_content ) = explode( ';', $content );
1965
- $content_type = trim( $type );
1966
- if ( false !== stripos( $charset_content, 'charset=' ) ) {
1967
- $charset = trim( str_replace( array( 'charset=', '"' ), '', $charset_content ) );
1968
- } elseif ( false !== stripos( $charset_content, 'boundary=' ) ) {
1969
- $boundary = trim( str_replace( array( 'BOUNDARY=', 'boundary=', '"' ), '', $charset_content ) );
1970
- $charset = '';
1971
- }
1972
-
1973
- // Avoid setting an empty $content_type.
1974
- } elseif ( '' !== trim( $content ) ) {
1975
- $content_type = trim( $content );
1976
- }
1977
- break;
1978
- case 'cc':
1979
- $cc = array_merge( (array) $cc, explode( ',', $content ) );
1980
- break;
1981
- case 'bcc':
1982
- $bcc = array_merge( (array) $bcc, explode( ',', $content ) );
1983
- break;
1984
- default:
1985
- // Add it to our grand headers array
1986
- $headers[trim( $name )] = trim( $content );
1987
- break;
1988
- }
1989
- }
1990
- }
1991
- }
1992
-
1993
- // Empty out the values that may be set
1994
- $phpmailer->ClearAllRecipients();
1995
- $phpmailer->ClearAttachments();
1996
- $phpmailer->ClearCustomHeaders();
1997
- $phpmailer->ClearReplyTos();
1998
-
1999
- // From email and name
2000
- // If we don't have a name from the input headers
2001
- if ( !isset( $from_name ) )
2002
- $from_name = 'WordPress';
2003
-
2004
- /* If we don't have an email from the input headers default to wordpress@$sitename
2005
- * Some hosts will block outgoing mail from this address if it doesn't exist but
2006
- * there's no easy alternative. Defaulting to admin_email might appear to be another
2007
- * option but some hosts may refuse to relay mail from an unknown domain. See
2008
- * https://core.trac.wordpress.org/ticket/5007.
2009
- */
2010
-
2011
- if ( !isset( $from_email ) ) {
2012
- // Get the site domain and get rid of www.
2013
- $sitename = strtolower( $_SERVER['SERVER_NAME'] );
2014
- if ( substr( $sitename, 0, 4 ) == 'www.' ) {
2015
- $sitename = substr( $sitename, 4 );
2016
- }
2017
-
2018
- $from_email = 'wordpress@' . $sitename;
2019
- }
2020
-
2021
- /**
2022
- * Filter the email address to send from.
2023
- *
2024
- * @since 2.2.0
2025
- *
2026
- * @param string $from_email Email address to send from.
2027
- */
2028
- $phpmailer->From = apply_filters( 'wp_mail_from', $from_email );
2029
-
2030
- /**
2031
- * Filter the name to associate with the "from" email address.
2032
- *
2033
- * @since 2.3.0
2034
- *
2035
- * @param string $from_name Name associated with the "from" email address.
2036
- */
2037
- $phpmailer->FromName = apply_filters( 'wp_mail_from_name', $from_name );
2038
-
2039
- // Set destination addresses
2040
- if ( !is_array( $to ) )
2041
- $to = explode( ',', $to );
2042
-
2043
- foreach ( (array) $to as $recipient ) {
2044
- try {
2045
- // Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
2046
- $recipient_name = '';
2047
- if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
2048
- if ( count( $matches ) == 3 ) {
2049
- $recipient_name = $matches[1];
2050
- $recipient = $matches[2];
2051
- }
2052
- }
2053
- $phpmailer->AddAddress( $recipient, $recipient_name);
2054
- } catch ( phpmailerException $e ) {
2055
- continue;
2056
- }
2057
- }
2058
-
2059
- // Set mail's subject and body
2060
- $phpmailer->Subject = $subject;
2061
- $phpmailer->Body = $message;
2062
-
2063
- // Add any CC and BCC recipients
2064
- if ( !empty( $cc ) ) {
2065
- foreach ( (array) $cc as $recipient ) {
2066
- try {
2067
- // Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
2068
- $recipient_name = '';
2069
- if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
2070
- if ( count( $matches ) == 3 ) {
2071
- $recipient_name = $matches[1];
2072
- $recipient = $matches[2];
2073
- }
2074
- }
2075
- $phpmailer->AddCc( $recipient, $recipient_name );
2076
- } catch ( phpmailerException $e ) {
2077
- continue;
2078
- }
2079
- }
2080
- }
2081
-
2082
- if ( !empty( $bcc ) ) {
2083
- foreach ( (array) $bcc as $recipient) {
2084
- try {
2085
- // Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
2086
- $recipient_name = '';
2087
- if ( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
2088
- if ( count( $matches ) == 3 ) {
2089
- $recipient_name = $matches[1];
2090
- $recipient = $matches[2];
2091
- }
2092
- }
2093
- $phpmailer->AddBcc( $recipient, $recipient_name );
2094
- } catch ( phpmailerException $e ) {
2095
- continue;
2096
- }
2097
- }
2098
- }
2099
-
2100
- // Set to use PHP's mail()
2101
- $phpmailer->IsMail();
2102
-
2103
- // Set Content-Type and charset
2104
- // If we don't have a content-type from the input headers
2105
- if ( !isset( $content_type ) )
2106
- $content_type = 'text/plain';
2107
-
2108
- /**
2109
- * Filter the wp_mail() content type.
2110
- *
2111
- * @since 2.3.0
2112
- *
2113
- * @param string $content_type Default wp_mail() content type.
2114
- */
2115
- $content_type = apply_filters( 'wp_mail_content_type', $content_type );
2116
-
2117
- $phpmailer->ContentType = $content_type;
2118
-
2119
- // Set whether it's plaintext, depending on $content_type
2120
- if ( 'text/html' == $content_type )
2121
- $phpmailer->IsHTML( true );
2122
-
2123
- // If we don't have a charset from the input headers
2124
- if ( !isset( $charset ) )
2125
- $charset = get_bloginfo( 'charset' );
2126
-
2127
- // Set the content-type and charset
2128
-
2129
- /**
2130
- * Filter the default wp_mail() charset.
2131
- *
2132
- * @since 2.3.0
2133
- *
2134
- * @param string $charset Default email charset.
2135
- */
2136
- $phpmailer->CharSet = apply_filters( 'wp_mail_charset', $charset );
2137
-
2138
- // Set custom headers
2139
- if ( !empty( $headers ) ) {
2140
- foreach ( (array) $headers as $name => $content ) {
2141
- $phpmailer->AddCustomHeader( sprintf( '%1$s: %2$s', $name, $content ) );
2142
- }
2143
-
2144
- if ( false !== stripos( $content_type, 'multipart' ) && ! empty($boundary) )
2145
- $phpmailer->AddCustomHeader( sprintf( "Content-Type: %s;\n\t boundary=\"%s\"", $content_type, $boundary ) );
2146
- }
2147
-
2148
- if ( !empty( $attachments ) ) {
2149
- foreach ( $attachments as $attachment ) {
2150
- try {
2151
- $phpmailer->AddAttachment($attachment);
2152
- } catch ( phpmailerException $e ) {
2153
- continue;
2154
- }
2155
- }
2156
- }
2157
-
2158
- /**
2159
- * Fires after PHPMailer is initialized.
2160
- *
2161
- * @since 2.2.0
2162
- *
2163
- * @param PHPMailer &$phpmailer The PHPMailer instance, passed by reference.
2164
- */
2165
- do_action_ref_array( 'phpmailer_init', array( &$phpmailer ) );
2166
-
2167
- // Send!
2168
- try {
2169
- return $phpmailer->Send();
2170
- } catch ( phpmailerException $e ) {
2171
-
2172
- $mail_error_data = compact( 'to', 'subject', 'message', 'headers', 'attachments' );
2173
-
2174
- /**
2175
- * Fires after a phpmailerException is caught.
2176
- *
2177
- * @since 4.4.0
2178
- *
2179
- * @param WP_Error $error A WP_Error object with the phpmailerException code, message, and an array
2180
- * containing the mail recipient, subject, message, headers, and attachments.
2181
- */
2182
- do_action( 'wp_mail_failed', new WP_Error( $e->getCode(), $e->getMessage(), $mail_error_data ) );
2183
-
2184
- return false;
2185
- }
2186
- }
2187
-
2188
 
2189
  /**
2190
  * Check the plugins directory and retrieve all plugin files with plugin data.
@@ -2755,6 +2424,25 @@
2755
  rmdir($dir);
2756
  }
2757
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2758
 
2759
 
2760
  /**
529
  */
530
  function set_server_type()
531
  {
532
+
533
  //Allow to set server type through filter
534
  if ( ! empty ( apply_filters( 'wph/core/set_server_type' , '' ) ) )
535
  return;
1696
  . __('This is an automated message to inform that you can always use a recovery link if something go wrong', 'wp-hide-security-enhancer') . ": " . site_url() . '?wph-recovery='. $this->wph->functions->get_recovery_code() . "\n\n"
1697
  . __('Please keep this url to a safe place.', 'wp-hide-security-enhancer') . ".";
1698
  $headers = 'From: '. get_option('blogname') .' <'. get_option('admin_email') .'>' . "\r\n";
1699
+
1700
+ if ( ! function_exists( 'wp_mail' ) )
1701
+ require_once ABSPATH . WPINC . '/pluggable.php';
1702
+
1703
+ wp_mail( $to, $subject, $message, $headers );
1704
+
1705
  }
1706
 
1707
 
1853
  }
1854
  }
1855
 
1856
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1857
 
1858
  /**
1859
  * Check the plugins directory and retrieve all plugin files with plugin data.
2424
  rmdir($dir);
2425
  }
2426
  }
2427
+
2428
+
2429
+ function random_word( $length = 8 )
2430
+ {
2431
+ $cons = array( 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'x', 'z', 'pt', 'gl', 'gr', 'ch', 'ph', 'ps', 'sh', 'st', 'th', 'wh' );
2432
+ $cons_cant_start = array( 'ck', 'cm', 'dr', 'ds','ft', 'gh', 'gn', 'kr', 'ks', 'ls', 'lt', 'lr', 'mp', 'mt', 'ms', 'ng', 'ns','rd', 'rg', 'rs', 'rt', 'ss', 'ts', 'tch');
2433
+ $vows = array( 'a', 'e', 'i', 'o', 'u', 'y','ee', 'oa', 'oo');
2434
+ $current = ( mt_rand( 0, 1 ) == '0' ? 'cons' : 'vows' );
2435
+ $word = '';
2436
+ while( strlen( $word ) < $length ) {
2437
+ if( strlen( $word ) == 2 ) $cons = array_merge( $cons, $cons_cant_start );
2438
+ $rnd = ${$current}[ mt_rand( 0, count( ${$current} ) -1 ) ];
2439
+ if( strlen( $word . $rnd ) <= $length ) {
2440
+ $word .= $rnd;
2441
+ $current = ( $current == 'cons' ? 'vows' : 'cons' );
2442
+ }
2443
+ }
2444
+ return $word;
2445
+ }
2446
 
2447
 
2448
  /**
include/wph.class.php CHANGED
@@ -345,10 +345,28 @@
345
  function admin_menus()
346
  {
347
  include_once(WPH_PATH . '/include/admin-interface.class.php');
 
348
 
349
  $this->admin_interface = new WPH_interface();
350
-
351
- $hookID = add_menu_page('WP Hide', 'WP Hide', 'manage_options', 'wp-hide');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
352
 
353
  foreach($this->modules as $module)
354
  {
345
  function admin_menus()
346
  {
347
  include_once(WPH_PATH . '/include/admin-interface.class.php');
348
+ include_once(WPH_PATH . '/include/admin-interfaces/setup.class.php');
349
 
350
  $this->admin_interface = new WPH_interface();
351
+
352
+ $first_view = get_option('wph-first-view');
353
+ if ( isset ( $_GET['page'] ) && $_GET['page'] == 'wp-hide' )
354
+ $first_view = 'false';
355
+
356
+ $menu_title = 'WP Hide';
357
+ if ( empty ( $first_view ) )
358
+ $menu_title .= ' <span class="update-plugins count-1"><span class="plugin-count">!</span></span>';
359
+ $hookID = add_menu_page('WP Hide', $menu_title, 'manage_options', 'wp-hide');
360
+
361
+ $menu_title = 'Setup';
362
+ if ( empty ( $first_view ) )
363
+ $menu_title .= ' <span class="update-plugins count-1"><span class="plugin-count">!</span></span>';
364
+
365
+ $setup_interface = new WPH_setup_interface();
366
+ $hookID = add_submenu_page( 'wp-hide', 'WP Hide', $menu_title, 'manage_options', 'wp-hide', array( $setup_interface,'_render' ) );
367
+
368
+ add_action('admin_print_styles-' . $hookID , array($setup_interface, 'admin_print_styles'));
369
+ add_action('admin_print_scripts-' . $hookID , array($setup_interface, 'admin_print_scripts'));
370
 
371
  foreach($this->modules as $module)
372
  {
languages/wp-hide-security-enhancer.mo CHANGED
Binary file
languages/wp-hide-security-enhancer.po CHANGED
@@ -1,8 +1,8 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WP Hide & Security Enhancer\n"
4
- "POT-Creation-Date: 2020-06-23 15:05+0300\n"
5
- "PO-Revision-Date: 2020-06-23 15:05+0300\n"
6
  "Last-Translator: NspCode <contact@nsp-code.com>\n"
7
  "Language-Team: Nsp Code\n"
8
  "Language: en\n"
@@ -32,16 +32,175 @@ msgid ""
32
  "Login Url change. "
33
  msgstr ""
34
 
35
- #: include/admin-interface.class.php:110
36
  msgid "Save"
37
  msgstr ""
38
 
39
- #: include/admin-interface.class.php:297
40
  msgid ""
41
  "Copy the following link to a safe place. You can use later to reset all "
42
  "plugin options, if something go wrong."
43
  msgstr ""
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  #: include/class.environment.php:144
46
  msgid ""
47
  "<b>WP Hide</b> - Unable to create environment static file. The system "
@@ -127,31 +286,31 @@ msgstr ""
127
  msgid "Please keep this url to a safe place."
128
  msgstr ""
129
 
130
- #: include/functions.class.php:2291
131
  #, php-format
132
  msgid "The %1$s plugin header is deprecated. Use %2$s instead."
133
  msgstr ""
134
 
135
- #: include/functions.class.php:2376
136
  #, php-format
137
  msgid "By %s."
138
  msgstr ""
139
 
140
- #: include/functions.class.php:2799
141
  msgid ""
142
  "Help us to maintain this plugin by sending improvements, suggestions and "
143
  "reporting any issues at "
144
  msgstr ""
145
 
146
- #: include/functions.class.php:2801
147
  msgid "Did you know there is a"
148
  msgstr ""
149
 
150
- #: include/functions.class.php:2801
151
  msgid "version of this plug-in?"
152
  msgstr ""
153
 
154
- #: include/functions.class.php:2803
155
  msgid ""
156
  "Did you find this plugin useful? Please support our work by submitting a "
157
  "review, spread the word about the code, or write an article about the plugin "
@@ -164,82 +323,74 @@ msgid ""
164
  "remove of rewrite lines is required if no access from php"
165
  msgstr ""
166
 
167
- #: include/wph.class.php:374
168
  msgid ""
169
  "Your server run on WPEngine which works on Nginx rewrite rules, please check "
170
  "with WP Hide PRO version at"
171
  msgstr ""
172
 
173
- #: include/wph.class.php:379
174
  msgid ""
175
  "This plugin version can't handle MultiSite environment, please check with WP "
176
  "Hide PRO version at"
177
  msgstr ""
178
 
179
- #: include/wph.class.php:384
180
  msgid ""
181
  "Unable to launch WP Hide through mu-plugins/wp-hide-loader.php<br /> Please "
182
  "make sure this location is writable so the plugin create the required file."
183
  msgstr ""
184
 
185
- #: include/wph.class.php:390
186
  msgid ""
187
  "Unable to update the /mu-plugins/wp-hide-loader.php<br /> Please make sure "
188
  "the file is writable so the plugin create the required file."
189
  msgstr ""
190
 
191
- #: include/wph.class.php:399
192
  msgid ""
193
  "Unable to update the <b>mu-plugins/wp-hide-loader.php</b><br /> Please "
194
  "manually copy the file from"
195
  msgstr ""
196
 
197
- #: include/wph.class.php:399
198
  msgid "to"
199
  msgstr ""
200
 
201
- #: include/wph.class.php:405
202
  msgid ""
203
  "Permalink is required to be turned ON for WP Hide & Security Enhancer to work"
204
  msgstr ""
205
 
206
- #: include/wph.class.php:410
207
  msgid ""
208
  "<b>WP Hide</b> This plugin version can't handle this server type, please "
209
  "check with PRO version at"
210
  msgstr ""
211
 
212
- #: include/wph.class.php:421
213
  msgid ""
214
  "Unable to write custom rules to your .htaccess. Is this file writable? <br /"
215
  ">No changes are being applied."
216
  msgstr ""
217
 
218
- #: include/wph.class.php:424
219
  msgid ""
220
  "Unable to write custom rules to your web.config. Is this file writable? <br /"
221
  ">No changes are being applied."
222
  msgstr ""
223
 
224
- #: include/wph.class.php:432
225
  msgid ""
226
  "Unable to create cache folder. Is the wp-content writable? <br />No cache "
227
  "data will be available."
228
  msgstr ""
229
 
230
- #: include/wph.class.php:437
231
  msgid "All Settings where restored to default"
232
  msgstr ""
233
 
234
- #: include/wph.class.php:466
235
- msgid "Settings saved"
236
- msgstr ""
237
-
238
- #: include/wph.class.php:466
239
- msgid "Remember, site cache clear is required."
240
- msgstr ""
241
-
242
- #: include/wph.class.php:508
243
  msgid "Cache cleared"
244
  msgstr ""
245
 
@@ -1373,7 +1524,7 @@ msgid "New Includes Path"
1373
  msgstr ""
1374
 
1375
  #: modules/components/rewrite-new_include_path.php:18
1376
- msgid "Change default /wp-includes path."
1377
  msgstr ""
1378
 
1379
  #: modules/components/rewrite-new_include_path.php:22
@@ -1993,6 +2144,10 @@ msgstr ""
1993
  msgid "New Content Path"
1994
  msgstr ""
1995
 
 
 
 
 
1996
  #: modules/components/rewrite-wp_content_path.php:17
1997
  msgid "Your default wp-content path is set to"
1998
  msgstr ""
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: WP Hide & Security Enhancer\n"
4
+ "POT-Creation-Date: 2020-07-08 15:05+0300\n"
5
+ "PO-Revision-Date: 2020-07-08 15:05+0300\n"
6
  "Last-Translator: NspCode <contact@nsp-code.com>\n"
7
  "Language-Team: Nsp Code\n"
8
  "Language: en\n"
32
  "Login Url change. "
33
  msgstr ""
34
 
35
+ #: include/admin-interface.class.php:118
36
  msgid "Save"
37
  msgstr ""
38
 
39
+ #: include/admin-interface.class.php:305
40
  msgid ""
41
  "Copy the following link to a safe place. You can use later to reset all "
42
  "plugin options, if something go wrong."
43
  msgstr ""
44
 
45
+ #: include/admin-interfaces/setup.class.php:43
46
+ msgid ""
47
+ "Any existing options values will be overwritten, are you sure you want to "
48
+ "continue?"
49
+ msgstr ""
50
+
51
+ #: include/admin-interfaces/setup.class.php:59 include/wph.class.php:484
52
+ msgid "Settings saved"
53
+ msgstr ""
54
+
55
+ #: include/admin-interfaces/setup.class.php:59 include/wph.class.php:484
56
+ msgid "Remember, site cache clear is required."
57
+ msgstr ""
58
+
59
+ #: include/admin-interfaces/setup.class.php:137
60
+ msgid "Setup"
61
+ msgstr ""
62
+
63
+ #: include/admin-interfaces/setup.class.php:147
64
+ msgid "System notice !"
65
+ msgstr ""
66
+
67
+ #: include/admin-interfaces/setup.class.php:150
68
+ msgid ""
69
+ "Your site runs on a server type which the current version can't create the "
70
+ "required rewrite data, please check with"
71
+ msgstr ""
72
+
73
+ #: include/admin-interfaces/setup.class.php:150
74
+ msgid "version at"
75
+ msgstr ""
76
+
77
+ #: include/admin-interfaces/setup.class.php:151
78
+ msgid ""
79
+ "This basic version can work with Apache, LiteSpeed, IIS, Nginx set as "
80
+ "reverse proxy for Apache, your site runs"
81
+ msgstr ""
82
+
83
+ #: include/admin-interfaces/setup.class.php:163
84
+ msgid "Sample Setup deployed !"
85
+ msgstr ""
86
+
87
+ #: include/admin-interfaces/setup.class.php:166
88
+ msgid ""
89
+ "A basic plugin set-up as been deployed, to get you started. A site cache "
90
+ "clear is highly recommended to ensure the updates are reflected on the front "
91
+ "side"
92
+ msgstr ""
93
+
94
+ #: include/admin-interfaces/setup.class.php:167
95
+ msgid ""
96
+ "Check with the front side to ensure everything is working. Further "
97
+ "adjustments to other options are recommended"
98
+ msgstr ""
99
+
100
+ #: include/admin-interfaces/setup.class.php:177
101
+ msgid "Getting Started"
102
+ msgstr ""
103
+
104
+ #: include/admin-interfaces/setup.class.php:180
105
+ msgid "plugin helps to hide your WordPress, theme, and plugins"
106
+ msgstr ""
107
+
108
+ #: include/admin-interfaces/setup.class.php:180
109
+ msgid ""
110
+ "This improves the site security as hackers' boots can't exploit the "
111
+ "vulnerabilities of your site, as not being aware of the user code"
112
+ msgstr ""
113
+
114
+ #: include/admin-interfaces/setup.class.php:180
115
+ msgid "Daily, more vulnerabilities are found"
116
+ msgstr ""
117
+
118
+ #: include/admin-interfaces/setup.class.php:180
119
+ msgid "but using WP Hide & Security Enhancer you will be perfectly safe"
120
+ msgstr ""
121
+
122
+ #: include/admin-interfaces/setup.class.php:184
123
+ msgid "Basic functionality"
124
+ msgstr ""
125
+
126
+ #: include/admin-interfaces/setup.class.php:187
127
+ msgid ""
128
+ "The basic principle of the plugin is to change default assets URLs, remove "
129
+ "or change specific HTML elements, and disable unused services. This isn't an "
130
+ "automated process, so it needs to be done manually while getting feedback on "
131
+ "the front side to ensure everything is still functional. No file and "
132
+ "directory are being changed anywhere, everything is processed on the fly "
133
+ "using output buffering and filters"
134
+ msgstr ""
135
+
136
+ #: include/admin-interfaces/setup.class.php:189
137
+ msgid ""
138
+ "A default directory structure for WordPress appears like this on outputted "
139
+ "HTML"
140
+ msgstr ""
141
+
142
+ #: include/admin-interfaces/setup.class.php:191
143
+ msgid ""
144
+ "So the most important first step, is to change the default /wp-content/ and /"
145
+ "wp-includes/ to something else. This can be done at"
146
+ msgstr ""
147
+
148
+ #: include/admin-interfaces/setup.class.php:191
149
+ msgid "and"
150
+ msgstr ""
151
+
152
+ #: include/admin-interfaces/setup.class.php:192
153
+ msgid "Further adjustments to"
154
+ msgstr ""
155
+
156
+ #: include/admin-interfaces/setup.class.php:192
157
+ msgid "can be applied"
158
+ msgstr ""
159
+
160
+ #: include/admin-interfaces/setup.class.php:194
161
+ msgid ""
162
+ "At this point, for all simple sites, the WordPress CMS is already hidden. If "
163
+ "using complex themes and plugins, further plugin options adjustments are "
164
+ "necessarily or PRO might be required ( for example"
165
+ msgstr ""
166
+
167
+ #: include/admin-interfaces/setup.class.php:194
168
+ msgid "hiding Elementor"
169
+ msgstr ""
170
+
171
+ #: include/admin-interfaces/setup.class.php:196
172
+ msgid ""
173
+ "Take the time to understand each option, there are in-line additional help "
174
+ "also external description to each of the features. If need additional "
175
+ "assistance, use the support forum or contact us. Full description of each "
176
+ "option can be found at"
177
+ msgstr ""
178
+
179
+ #: include/admin-interfaces/setup.class.php:196
180
+ msgid "Documentation"
181
+ msgstr ""
182
+
183
+ #: include/admin-interfaces/setup.class.php:202
184
+ msgid "Sample setup"
185
+ msgstr ""
186
+
187
+ #: include/admin-interfaces/setup.class.php:205
188
+ msgid ""
189
+ "This creates a simple setup to get you started. The procedure activates some "
190
+ "of the basic plugin options. All options will be reset and any existing "
191
+ "values will be overwritten, so use with caution. After the procedure, for "
192
+ "all simple sites, the WordPress CMS will be already hidden, otherwise "
193
+ "further options adjustments will be necessary"
194
+ msgstr ""
195
+
196
+ #: include/admin-interfaces/setup.class.php:207
197
+ msgid "Run Sample Setup"
198
+ msgstr ""
199
+
200
+ #: include/admin-interfaces/setup.class.php:219
201
+ msgid "Demo Video"
202
+ msgstr ""
203
+
204
  #: include/class.environment.php:144
205
  msgid ""
206
  "<b>WP Hide</b> - Unable to create environment static file. The system "
286
  msgid "Please keep this url to a safe place."
287
  msgstr ""
288
 
289
+ #: include/functions.class.php:1960
290
  #, php-format
291
  msgid "The %1$s plugin header is deprecated. Use %2$s instead."
292
  msgstr ""
293
 
294
+ #: include/functions.class.php:2045
295
  #, php-format
296
  msgid "By %s."
297
  msgstr ""
298
 
299
+ #: include/functions.class.php:2487
300
  msgid ""
301
  "Help us to maintain this plugin by sending improvements, suggestions and "
302
  "reporting any issues at "
303
  msgstr ""
304
 
305
+ #: include/functions.class.php:2489
306
  msgid "Did you know there is a"
307
  msgstr ""
308
 
309
+ #: include/functions.class.php:2489
310
  msgid "version of this plug-in?"
311
  msgstr ""
312
 
313
+ #: include/functions.class.php:2491
314
  msgid ""
315
  "Did you find this plugin useful? Please support our work by submitting a "
316
  "review, spread the word about the code, or write an article about the plugin "
323
  "remove of rewrite lines is required if no access from php"
324
  msgstr ""
325
 
326
+ #: include/wph.class.php:392
327
  msgid ""
328
  "Your server run on WPEngine which works on Nginx rewrite rules, please check "
329
  "with WP Hide PRO version at"
330
  msgstr ""
331
 
332
+ #: include/wph.class.php:397
333
  msgid ""
334
  "This plugin version can't handle MultiSite environment, please check with WP "
335
  "Hide PRO version at"
336
  msgstr ""
337
 
338
+ #: include/wph.class.php:402
339
  msgid ""
340
  "Unable to launch WP Hide through mu-plugins/wp-hide-loader.php<br /> Please "
341
  "make sure this location is writable so the plugin create the required file."
342
  msgstr ""
343
 
344
+ #: include/wph.class.php:408
345
  msgid ""
346
  "Unable to update the /mu-plugins/wp-hide-loader.php<br /> Please make sure "
347
  "the file is writable so the plugin create the required file."
348
  msgstr ""
349
 
350
+ #: include/wph.class.php:417
351
  msgid ""
352
  "Unable to update the <b>mu-plugins/wp-hide-loader.php</b><br /> Please "
353
  "manually copy the file from"
354
  msgstr ""
355
 
356
+ #: include/wph.class.php:417
357
  msgid "to"
358
  msgstr ""
359
 
360
+ #: include/wph.class.php:423
361
  msgid ""
362
  "Permalink is required to be turned ON for WP Hide & Security Enhancer to work"
363
  msgstr ""
364
 
365
+ #: include/wph.class.php:428
366
  msgid ""
367
  "<b>WP Hide</b> This plugin version can't handle this server type, please "
368
  "check with PRO version at"
369
  msgstr ""
370
 
371
+ #: include/wph.class.php:439
372
  msgid ""
373
  "Unable to write custom rules to your .htaccess. Is this file writable? <br /"
374
  ">No changes are being applied."
375
  msgstr ""
376
 
377
+ #: include/wph.class.php:442
378
  msgid ""
379
  "Unable to write custom rules to your web.config. Is this file writable? <br /"
380
  ">No changes are being applied."
381
  msgstr ""
382
 
383
+ #: include/wph.class.php:450
384
  msgid ""
385
  "Unable to create cache folder. Is the wp-content writable? <br />No cache "
386
  "data will be available."
387
  msgstr ""
388
 
389
+ #: include/wph.class.php:455
390
  msgid "All Settings where restored to default"
391
  msgstr ""
392
 
393
+ #: include/wph.class.php:526
 
 
 
 
 
 
 
 
394
  msgid "Cache cleared"
395
  msgstr ""
396
 
1524
  msgstr ""
1525
 
1526
  #: modules/components/rewrite-new_include_path.php:18
1527
+ msgid "Change default /wp-includes/ path."
1528
  msgstr ""
1529
 
1530
  #: modules/components/rewrite-new_include_path.php:22
2144
  msgid "New Content Path"
2145
  msgstr ""
2146
 
2147
+ #: modules/components/rewrite-wp_content_path.php:17
2148
+ msgid "Change default /wp-content/"
2149
+ msgstr ""
2150
+
2151
  #: modules/components/rewrite-wp_content_path.php:17
2152
  msgid "Your default wp-content path is set to"
2153
  msgstr ""
modules/components/admin-new_wp_login_php.php CHANGED
@@ -117,7 +117,11 @@
117
  . __('Additionality you can use the following link to reset all options ', 'wp-hide-security-enhancer') . ": " . site_url() . '?wph-recovery='. $this->wph->functions->get_recovery_code() . "\n\n"
118
  . __('Please keep this url to a safe place.', 'wp-hide-security-enhancer');
119
  $headers = 'From: '. get_option('blogname') .' <'. get_option('admin_email') .'>' . "\r\n";
120
- $this->wph->functions->wp_mail( $to, $subject, $message, $headers );
 
 
 
 
121
  }
122
 
123
 
117
  . __('Additionality you can use the following link to reset all options ', 'wp-hide-security-enhancer') . ": " . site_url() . '?wph-recovery='. $this->wph->functions->get_recovery_code() . "\n\n"
118
  . __('Please keep this url to a safe place.', 'wp-hide-security-enhancer');
119
  $headers = 'From: '. get_option('blogname') .' <'. get_option('admin_email') .'>' . "\r\n";
120
+
121
+ if ( ! function_exists( 'wp_mail' ) )
122
+ require_once ABSPATH . WPINC . '/pluggable.php';
123
+
124
+ wp_mail( $to, $subject, $message, $headers );
125
  }
126
 
127
 
modules/components/rewrite-new_include_path.php CHANGED
@@ -15,7 +15,7 @@
15
  $this->module_settings[] = array(
16
  'id' => 'new_include_path',
17
  'label' => __('New Includes Path', 'wp-hide-security-enhancer'),
18
- 'description' => __('Change default /wp-includes path.', 'wp-hide-security-enhancer') ,
19
 
20
  'help' => array(
21
  'title' => __('Help', 'wp-hide-security-enhancer') . ' - ' . __('New Includes Path', 'wp-hide-security-enhancer'),
15
  $this->module_settings[] = array(
16
  'id' => 'new_include_path',
17
  'label' => __('New Includes Path', 'wp-hide-security-enhancer'),
18
+ 'description' => __('Change default /wp-includes/ path.', 'wp-hide-security-enhancer') ,
19
 
20
  'help' => array(
21
  'title' => __('Help', 'wp-hide-security-enhancer') . ' - ' . __('New Includes Path', 'wp-hide-security-enhancer'),
modules/components/rewrite-new_theme_path.php CHANGED
@@ -817,7 +817,7 @@
817
 
818
  //when using the 'Child - New Theme Path' trigger a warning tha the 'New Theme Path' should be changed to, to avoid relative paths issues within child styles
819
 
820
- if($_settings_['new_theme_path'] == '' && $_settings_['new_theme_child_path'] != '')
821
  {
822
  $process_interface_save_errors[] = array( 'type' => 'warning',
823
  'message' => __('When changing the Child Theme Path it is recommended to also change the Main Theme Path to avoid relative paths issues within style files and layout break.', 'wp-hide-security-enhancer')
817
 
818
  //when using the 'Child - New Theme Path' trigger a warning tha the 'New Theme Path' should be changed to, to avoid relative paths issues within child styles
819
 
820
+ if( isset ( $_settings_['new_theme_path'] ) && isset ( $_settings_['new_theme_child_path'] ) && $_settings_['new_theme_path'] == '' && $_settings_['new_theme_child_path'] != '')
821
  {
822
  $process_interface_save_errors[] = array( 'type' => 'warning',
823
  'message' => __('When changing the Child Theme Path it is recommended to also change the Main Theme Path to avoid relative paths issues within style files and layout break.', 'wp-hide-security-enhancer')
modules/components/rewrite-wp_content_path.php CHANGED
@@ -14,7 +14,7 @@
14
  $this->module_settings[] = array(
15
  'id' => 'new_content_path',
16
  'label' => __('New Content Path', 'wp-hide-security-enhancer'),
17
- 'description' => __('Your default wp-content path is set to', 'wp-hide-security-enhancer') . ' <strong>'. $this->wph->default_variables['content_directory'] .'</strong>',
18
 
19
  'help' => array(
20
  'title' => __('Help', 'wp-hide-security-enhancer') . ' - ' . __('New Content Path', 'wp-hide-security-enhancer'),
14
  $this->module_settings[] = array(
15
  'id' => 'new_content_path',
16
  'label' => __('New Content Path', 'wp-hide-security-enhancer'),
17
+ 'description' => __('Change default /wp-content/', 'wp-hide-security-enhancer') . '<br />' .__('Your default wp-content path is set to', 'wp-hide-security-enhancer') . ' <strong>'. $this->wph->default_variables['content_directory'] .'</strong>',
18
 
19
  'help' => array(
20
  'title' => __('Help', 'wp-hide-security-enhancer') . ' - ' . __('New Content Path', 'wp-hide-security-enhancer'),
modules/module-rewrite.php CHANGED
@@ -67,7 +67,7 @@
67
 
68
  function get_module_slug()
69
  {
70
- return 'wp-hide';
71
  }
72
 
73
  function get_interface_menu_data()
67
 
68
  function get_module_slug()
69
  {
70
+ return 'wp-hide-rewrite';
71
  }
72
 
73
  function get_interface_menu_data()
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.nsp-code.com/
4
  Tags: wordpress hide, hide, security, improve security, hacking, wp hide, custom login, wp-loging.php, wp-admin, admin hide, login change,
5
  Requires at least: 2.8
6
  Tested up to: 5.4.2
7
- Stable tag: 1.6.0.4
8
  License: GPLv2 or later
9
 
10
  Hide and increase Security for your WordPress site using smart techniques. No files are changed on your server. Change default admin and wp-login urls
@@ -14,7 +14,7 @@ Hide and increase Security for your WordPress site using smart techniques. No fi
14
  The **easy way to completely hide your WordPress** core files, login page, theme and plugins paths from being show on front side. This is a huge improvement over Site Security, no one will know you actually run a WordPress. Provide a simple way to clean up html by removing all WordPress fingerprints.
15
 
16
  **No file and directory change!**
17
- No file and directory is being changed anywhere, everything is processed virtually! The plugin code use URL rewrite techniques and WordPress filters to apply all internal functionality and features. Everything is done automatically, there's no user intervention require at all.
18
 
19
  **Real hide of WordPress core files and plugins**
20
  The plugin not only allow to change default urls of you WordPress, but it hide/block defaults! Other similar plugins, just change the slugs, but the default are still accessible, obviously revealing WordPress as CMS
@@ -262,19 +262,27 @@ No files and directories are being changed on your server, everything is process
262
 
263
  There's no requirements on php knowledge. All plugin features and functionality are applied automatically, controlled through a descriptive admin interface.
264
 
 
 
 
 
265
  = Can I still update WordPress, my plugins and themes? =
266
 
267
  Everything works as before, no functionality is being broken. You can run updates at any time.
268
 
 
 
 
 
 
 
 
 
269
  = What servers this plugin can work with =
270
 
271
  This free code can with Apache, IIS server types and any other set-up which rely on .htaccess usage.
272
  For all other checks the PRO version at <a target="_blank" href="https://www.wp-hide.com">WP Hide PRO</a>
273
 
274
- = Is there any demo I can check? =
275
-
276
- A demo instance can be found at <a target="_blank" href="https://demo.wp-hide.com/">https://demo.wp-hide.com/</a> or our own website <a target="_blank" href="https://www.wp-hide.com/">WP Hide and Security Enhancer</a>
277
-
278
  = How to make it work with my OpenLiteSpeed server =
279
 
280
  There are few things to consider when run on litespeed servers:
@@ -336,6 +344,13 @@ Please get in touch with us and we'll do our best to include it for a next versi
336
 
337
  == Changelog ==
338
 
 
 
 
 
 
 
 
339
  = 1.6.0.4 =
340
  * Purge cache for Fast Velocity Minify plugin, when clearing internal cache
341
  * Return new admin slug when calling admin_url() and if default admin is customized
4
  Tags: wordpress hide, hide, security, improve security, hacking, wp hide, custom login, wp-loging.php, wp-admin, admin hide, login change,
5
  Requires at least: 2.8
6
  Tested up to: 5.4.2
7
+ Stable tag: 1.6.0.5
8
  License: GPLv2 or later
9
 
10
  Hide and increase Security for your WordPress site using smart techniques. No files are changed on your server. Change default admin and wp-login urls
14
  The **easy way to completely hide your WordPress** core files, login page, theme and plugins paths from being show on front side. This is a huge improvement over Site Security, no one will know you actually run a WordPress. Provide a simple way to clean up html by removing all WordPress fingerprints.
15
 
16
  **No file and directory change!**
17
+ No file and directory are being changed anywhere, everything is processed virtually! The plugin code use URL rewrite techniques and WordPress filters to apply all internal functionality and features. Everything is done automatically, there's no user intervention require at all.
18
 
19
  **Real hide of WordPress core files and plugins**
20
  The plugin not only allow to change default urls of you WordPress, but it hide/block defaults! Other similar plugins, just change the slugs, but the default are still accessible, obviously revealing WordPress as CMS
262
 
263
  There's no requirements on php knowledge. All plugin features and functionality are applied automatically, controlled through a descriptive admin interface.
264
 
265
+ = Is there any demo I can check? =
266
+
267
+ A demo instance can be found at <a target="_blank" href="https://demo.wp-hide.com/">https://demo.wp-hide.com/</a> or our own website <a target="_blank" href="https://www.wp-hide.com/">WP Hide and Security Enhancer</a>
268
+
269
  = Can I still update WordPress, my plugins and themes? =
270
 
271
  Everything works as before, no functionality is being broken. You can run updates at any time.
272
 
273
+ = Does the plugin affect the SEO aspects of my website? =
274
+
275
+ No, the plugin changes only assets links ( CSS, JavaScript, media files ) and not actual content URLs. There will be no negative impact from SEO perspective, whatsoever.
276
+
277
+ = Does the plugin work with my site cache? =
278
+
279
+ Yes, the plugin works with any cache plugin deployed on your site.
280
+
281
  = What servers this plugin can work with =
282
 
283
  This free code can with Apache, IIS server types and any other set-up which rely on .htaccess usage.
284
  For all other checks the PRO version at <a target="_blank" href="https://www.wp-hide.com">WP Hide PRO</a>
285
 
 
 
 
 
286
  = How to make it work with my OpenLiteSpeed server =
287
 
288
  There are few things to consider when run on litespeed servers:
344
 
345
  == Changelog ==
346
 
347
+ = 1.6.0.5 =
348
+ * New Setup interface with helps and hints on how to use the plugin.
349
+ * New Sample Setup, which deploy a basic set-up of plugin options
350
+ * Remove internal wp_mail and rely on WordPress core
351
+ * Improved FAQ area
352
+ * Updated base language file
353
+
354
  = 1.6.0.4 =
355
  * Purge cache for Fast Velocity Minify plugin, when clearing internal cache
356
  * Return new admin slug when calling admin_url() and if default admin is customized
wp-hide.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: https://www.wp-hide.com/
5
  Description: Hide and increase Security for your WordPress website instance using smart techniques. No files are changed on your server.
6
  Author: Nsp Code
7
  Author URI: http://www.nsp-code.com
8
- Version: 1.6.0.4
9
  Text Domain: wp-hide-security-enhancer
10
  Domain Path: /languages/
11
  */
5
  Description: Hide and increase Security for your WordPress website instance using smart techniques. No files are changed on your server.
6
  Author: Nsp Code
7
  Author URI: http://www.nsp-code.com
8
+ Version: 1.6.0.5
9
  Text Domain: wp-hide-security-enhancer
10
  Domain Path: /languages/
11
  */