Changeset 3227461
- Timestamp:
- 01/23/2025 12:48:24 PM (13 months ago)
- Location:
- instawp-connect
- Files:
-
- 24 added
- 46 edited
- 1 copied
-
tags/0.1.0.79 (copied) (copied from instawp-connect/trunk)
-
tags/0.1.0.79/dest.php (modified) (15 diffs)
-
tags/0.1.0.79/includes/apis/class-instawp-rest-api.php (modified) (2 diffs)
-
tags/0.1.0.79/includes/class-instawp-tools.php (modified) (1 diff)
-
tags/0.1.0.79/includes/functions-pull-push.php (modified) (1 diff)
-
tags/0.1.0.79/instawp-connect.php (modified) (3 diffs)
-
tags/0.1.0.79/languages/instawp-connect.pot (modified) (3 diffs)
-
tags/0.1.0.79/readme.txt (modified) (2 diffs)
-
tags/0.1.0.79/vendor/composer/InstalledVersions.php (modified) (4 diffs)
-
tags/0.1.0.79/vendor/composer/installed.json (modified) (6 diffs)
-
tags/0.1.0.79/vendor/composer/installed.php (modified) (4 diffs)
-
tags/0.1.0.79/vendor/instawp/connect-helpers/connect-helpers.php (modified) (2 diffs)
-
tags/0.1.0.79/vendor/instawp/connect-helpers/src/Cache.php (modified) (1 diff)
-
tags/0.1.0.79/vendor/instawp/connect-helpers/src/Helper.php (modified) (1 diff)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/action-scheduler.php (modified) (6 diffs)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/changelog.txt (modified) (1 diff)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php (modified) (1 diff)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php (modified) (2 diffs)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php (modified) (4 diffs)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php (modified) (4 diffs)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Cancel_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Create_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Delete_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Generate_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Get_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/List_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Next_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Run_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/WP_CLI/System_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php (modified) (3 diffs)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_WPCLI_Command.php (added)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php (modified) (1 diff)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php (modified) (1 diff)
-
tags/0.1.0.79/vendor/woocommerce/action-scheduler/readme.txt (modified) (2 diffs)
-
trunk/dest.php (modified) (15 diffs)
-
trunk/includes/apis/class-instawp-rest-api.php (modified) (2 diffs)
-
trunk/includes/class-instawp-tools.php (modified) (1 diff)
-
trunk/includes/functions-pull-push.php (modified) (1 diff)
-
trunk/instawp-connect.php (modified) (3 diffs)
-
trunk/languages/instawp-connect.pot (modified) (3 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/vendor/composer/InstalledVersions.php (modified) (4 diffs)
-
trunk/vendor/composer/installed.json (modified) (6 diffs)
-
trunk/vendor/composer/installed.php (modified) (4 diffs)
-
trunk/vendor/instawp/connect-helpers/connect-helpers.php (modified) (2 diffs)
-
trunk/vendor/instawp/connect-helpers/src/Cache.php (modified) (1 diff)
-
trunk/vendor/instawp/connect-helpers/src/Helper.php (modified) (1 diff)
-
trunk/vendor/woocommerce/action-scheduler/action-scheduler.php (modified) (6 diffs)
-
trunk/vendor/woocommerce/action-scheduler/changelog.txt (modified) (1 diff)
-
trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php (modified) (1 diff)
-
trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php (modified) (2 diffs)
-
trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php (modified) (4 diffs)
-
trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php (modified) (4 diffs)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Cancel_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Create_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Delete_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Generate_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Get_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/List_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Next_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action/Run_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/Action_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/WP_CLI/System_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php (modified) (3 diffs)
-
trunk/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_WPCLI_Command.php (added)
-
trunk/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php (modified) (1 diff)
-
trunk/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php (modified) (1 diff)
-
trunk/vendor/woocommerce/action-scheduler/readme.txt (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
instawp-connect/tags/0.1.0.79/dest.php
r3216309 r3227461 5 5 include_once 'includes/functions-pull-push.php'; 6 6 7 if ( ! file_exists( 'iwp_log.txt' ) ) {8 file_put_contents( 'iwp_log.txt', "Migration log started \n" );9 }10 11 7 if ( ! isset( $_SERVER['HTTP_X_IWP_MIGRATE_KEY'] ) || empty( $migrate_key = $_SERVER['HTTP_X_IWP_MIGRATE_KEY'] ) ) { 12 8 header( 'x-iwp-status: false' ); … … 26 22 } 27 23 28 //$options_data_path = $root_dir_path . DIRECTORY_SEPARATORz . 'wp-content' . DIRECTORY_SEPARATOR . 'instawpbackups' . DIRECTORY_SEPARATOR . 'migrate-push-db-' . substr( $migrate_key, 0, 5 ) . '.txt'; 24 $log_file_path = $root_dir_path . DIRECTORY_SEPARATOR . 'iwp-push-log.txt'; 25 $received_db_path = $root_dir_path . DIRECTORY_SEPARATOR . 'iwp-db-received.sql'; 29 26 $options_data_path = $root_dir_path . DIRECTORY_SEPARATOR . 'migrate-push-db-' . substr( $migrate_key, 0, 5 ) . '.txt'; 30 27 … … 89 86 $req_order = isset( $_GET['r'] ) ? intval( $_GET['r'] ) : 1; 90 87 91 //if ( ! file_exists( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt' ) ) {92 // file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', json_encode( $user_details ) . "\n" . json_encode( $retain_user ) );93 //}94 95 88 if ( in_array( $file_relative_path, $excluded_paths ) ) { 96 89 exit( 0 ); … … 98 91 99 92 $file_save_path = $root_dir_path . DIRECTORY_SEPARATOR . $file_relative_path; 100 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "full path: " . $file_save_path . "\n", FILE_APPEND ); 93 101 94 if ( in_array( $file_save_path, $excluded_paths ) || str_contains( $file_save_path, 'instawp-autologin' ) ) { 102 95 exit( 0 ); 103 96 } 104 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "full path success" . "\n", FILE_APPEND );105 97 106 98 $directory_name = dirname( $file_save_path ); … … 121 113 unlink( $file_save_path ); 122 114 } 123 // $file_save_path = $root_dir_path . DIRECTORY_SEPARATOR . time() . '.sql'; // added for debugging124 115 $file_stream = fopen( $file_save_path, 'a+b' ); 125 116 } else { … … 212 203 $commands = explode( ";\n\n", $sql_commands ); 213 204 205 file_put_contents( $received_db_path, $sql_commands, FILE_APPEND ); 206 214 207 foreach ( $commands as $command ) { 215 208 if ( ! empty( trim( $command ) ) ) { … … 231 224 if ( isset( $_SERVER['HTTP_X_IWP_PROGRESS'] ) ) { 232 225 $log_content = "x-iwp-progress: {$_SERVER['HTTP_X_IWP_PROGRESS']}\n"; 233 file_put_contents( 'iwp_log.txt', $log_content, FILE_APPEND );226 file_put_contents( $log_file_path, $log_content, FILE_APPEND ); 234 227 } 235 228 236 229 if ( isset( $_SERVER['HTTP_X_IWP_PROGRESS'] ) && $_SERVER['HTTP_X_IWP_PROGRESS'] == 100 ) { 237 238 file_put_contents( 'iwp_log.txt', "Retain User: " . var_dump( $retain_user ), FILE_APPEND );239 file_put_contents( 'iwp_log.txt', "User Details: " . json_encode( $user_details ), FILE_APPEND );240 230 241 231 // Retaining user after migration … … 262 252 $query = "INSERT INTO {$table_prefix}users ($fields) VALUES ($values)"; 263 253 264 file_put_contents( 'iwp_log.txt', "Query: " . $query, FILE_APPEND );265 266 254 $query_response = $mysqli->query( $query ); 267 268 file_put_contents( 'iwp_log.txt', "Query Response: " . json_encode( $query_response ), FILE_APPEND );269 255 270 256 if ( $query_response ) { 271 257 $user_id = $mysqli->insert_id; 272 258 273 file_put_contents( 'iwp_log.txt', "User ID: " . json_encode( $user_id ), FILE_APPEND );274 275 259 if ( $user_id ) { 276 277 260 // Set user capabilities 278 261 $caps_key = $mysqli->real_escape_string( $table_prefix . 'capabilities' ); … … 290 273 291 274 if ( $mysqli->error ) { 292 file_put_contents( 'iwp_log.txt', "insert response: " . $mysqli->error . "\n", FILE_APPEND );275 file_put_contents( $log_file_path, "insert response: " . $mysqli->error . "\n", FILE_APPEND ); 293 276 } 294 277 } … … 300 283 301 284 try { 302 $query = "INSERT INTO `{$table_prefix}options` (`option_name`, `option_value`) VALUES('instawp_api_options', '{$instawp_api_options}')"; 303 304 // log start 305 file_put_contents( 'iwp_log.txt', "insert query: " . $query . "\n", FILE_APPEND ); 306 // log end 307 285 $query = "INSERT INTO `{$table_prefix}options` (`option_name`, `option_value`) VALUES('instawp_api_options', '{$instawp_api_options}')"; 308 286 $insert_response = $mysqli->query( $query ); 309 310 // log start311 file_put_contents( 'iwp_log.txt', "insert response: " . var_dump( $insert_response ) . "\n", FILE_APPEND );312 // log end313 287 314 288 if ( ! $insert_response ) { … … 316 290 } 317 291 } catch ( Exception $e ) { 318 // log start 319 file_put_contents( 'iwp_log.txt', "insert exception: " . $e->getMessage() . "\n", FILE_APPEND ); 320 // log end 292 file_put_contents( $log_file_path, "insert exception: " . $e->getMessage() . "\n", FILE_APPEND ); 321 293 322 294 $is_insert_failed = true; … … 325 297 if ( $is_insert_failed ) { 326 298 try { 327 $query = "UPDATE `{$table_prefix}options` SET `option_value` = '{$instawp_api_options}' WHERE `option_name` = 'instawp_api_options'"; 328 329 // log start 330 file_put_contents( 'iwp_log.txt', "update query: " . $query . "\n", FILE_APPEND ); 331 // log end 332 299 $query = "UPDATE `{$table_prefix}options` SET `option_value` = '{$instawp_api_options}' WHERE `option_name` = 'instawp_api_options'"; 333 300 $update_response = $mysqli->query( $query ); 334 335 // log start336 file_put_contents( 'iwp_log.txt', "update response: " . var_dump( $update_response ) . "\n", FILE_APPEND );337 // log end338 301 } catch ( Exception $e ) { 302 file_put_contents( $log_file_path, "Update failed. Error message: {$e->getMessage()}\n", FILE_APPEND ); 303 339 304 header( 'x-iwp-status: false' ); 340 305 header( "x-iwp-message: Update failed. Error message: {$e->getMessage()}\n" ); … … 355 320 } 356 321 357 if ( file_exists( $file_save_path ) ) {358 unlink( $file_save_path );359 }322 // if ( file_exists( $file_save_path ) ) { 323 // unlink( $file_save_path ); 324 // } 360 325 } 361 326 … … 373 338 $file_name = $zip->getNameIndex( $i ); 374 339 375 if ( ! array_contains_str( $directory_name . DIRECTORY_SEPARATOR . $file_name, $excluded_paths ) && ! str_contains( $file_name, 'instawp-autologin' ) ) { 376 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "zip path: " . $directory_name . DIRECTORY_SEPARATOR . $file_name . "\n", FILE_APPEND ); 340 if ( false !== strpos( $directory_name, DIRECTORY_SEPARATOR . 'wp-content' ) || false !== strpos( $directory_name, DIRECTORY_SEPARATOR . 'wp-includes' ) || false !== strpos( $directory_name, DIRECTORY_SEPARATOR . 'wp-admin' ) ) { 341 if ( ! array_contains_str( $directory_name . DIRECTORY_SEPARATOR . $file_name, $excluded_paths ) && ! str_contains( $file_name, 'instawp-autologin' ) ) { 342 $extracted_files[] = $file_name; 343 } 344 } else if ( ! in_array( $file_name, $excluded_paths ) && ! str_contains( $file_name, 'instawp-autologin' ) ) { 377 345 $extracted_files[] = $file_name; 378 346 } … … 448 416 449 417 if ( str_contains( $file_relative_path, 'wp-config.php' ) || $is_wp_config_file ) { 450 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "wp-config.php" . "\n", FILE_APPEND );451 418 if ( ! isset( $db_host ) || ! isset( $db_username ) || ! isset( $db_password ) || ! isset( $db_name ) ) { 452 419 header( 'x-iwp-status: false' ); -
instawp-connect/tags/0.1.0.79/includes/apis/class-instawp-rest-api.php
r3220103 r3227461 145 145 $api_domain = isset( $parameters['api_domain'] ) ? sanitize_text_field( $parameters['api_domain'] ) : ''; 146 146 $plan_id = isset( $parameters['advance_connect_plan_id'] ) ? intval( $parameters['advance_connect_plan_id'] ) : 0; 147 $managed = isset( $parameters['managed'] ) ? boolval( $parameters['managed'] ) : true; 147 148 148 149 if ( empty( $wp_username ) || empty( $application_password ) ) { … … 250 251 } 251 252 252 if ( ! Helper::instawp_generate_api_key( $api_key, $jwt ) ) {253 if ( ! Helper::instawp_generate_api_key( $api_key, $jwt, $managed ) ) { 253 254 return $this->send_response( array( 254 255 'status' => false, -
instawp-connect/tags/0.1.0.79/includes/class-instawp-tools.php
r3222813 r3227461 498 498 if ( isset( $config_constants['DB_HOST'] ) ) { 499 499 unset( $config_constants['DB_HOST'] ); 500 } 501 502 if ( isset( $config_constants['MYSQL_CLIENT_FLAGS'] ) ) { 503 unset( $config_constants['MYSQL_CLIENT_FLAGS'] ); 500 504 } 501 505 -
instawp-connect/tags/0.1.0.79/includes/functions-pull-push.php
r3216309 r3227461 156 156 } 157 157 158 foreach ( $array as $item ) {159 if ( str_contains( $string, $item ) ) {160 return true;161 }162 }158 // foreach ( $array as $item ) { 159 // if ( str_contains( $string, $item ) ) { 160 // return true; 161 // } 162 // } 163 163 164 164 return false; -
instawp-connect/tags/0.1.0.79/instawp-connect.php
r3223388 r3227461 8 8 * Plugin Name: InstaWP Connect 9 9 * Description: 1-click WordPress plugin for Staging, Migrations, Management, Sync and Companion plugin for InstaWP. 10 * Version: 0.1.0.7 810 * Version: 0.1.0.79 11 11 * Author: InstaWP Team 12 12 * Author URI: https://instawp.com/ … … 28 28 global $wpdb; 29 29 30 defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.7 8' );30 defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.79' ); 31 31 defined( 'INSTAWP_API_DOMAIN_PROD' ) || define( 'INSTAWP_API_DOMAIN_PROD', 'https://app.instawp.io' ); 32 32 … … 155 155 156 156 run_instawp(); 157 158 159 /** 160 * Custom Functions Started 161 */ 162 if ( ! function_exists( 'iwp_is_serialized' ) ) { 163 function iwp_is_serialized( $data, $strict = true ) { 164 // If it isn't a string, it isn't serialized. 165 if ( ! is_string( $data ) ) { 166 return false; 167 } 168 $data = trim( $data ); 169 if ( 'N;' === $data ) { 170 return true; 171 } 172 if ( strlen( $data ) < 4 ) { 173 return false; 174 } 175 if ( ':' !== $data[1] ) { 176 return false; 177 } 178 if ( $strict ) { 179 $lastc = substr( $data, - 1 ); 180 if ( ';' !== $lastc && '}' !== $lastc ) { 181 return false; 182 } 183 } else { 184 $semicolon = strpos( $data, ';' ); 185 $brace = strpos( $data, '}' ); 186 // Either ; or } must exist. 187 if ( false === $semicolon && false === $brace ) { 188 return false; 189 } 190 // But neither must be in the first X characters. 191 if ( false !== $semicolon && $semicolon < 3 ) { 192 return false; 193 } 194 if ( false !== $brace && $brace < 4 ) { 195 return false; 196 } 197 } 198 $token = $data[0]; 199 switch ( $token ) { 200 case 's': 201 if ( $strict ) { 202 if ( '"' !== substr( $data, - 2, 1 ) ) { 203 return false; 204 } 205 } elseif ( ! str_contains( $data, '"' ) ) { 206 return false; 207 } 208 // Or else fall through. 209 case 'a': 210 case 'O': 211 case 'E': 212 return (bool) preg_match( "/^{$token}:[0-9]+:/s", $data ); 213 case 'b': 214 case 'i': 215 case 'd': 216 $end = $strict ? '$' : ''; 217 218 return (bool) preg_match( "/^{$token}:[0-9.E+-]+;$end/", $data ); 219 } 220 221 return false; 222 } 223 } 224 225 if ( ! function_exists( 'iwp_maybe_serialize' ) ) { 226 function iwp_maybe_serialize( $data ) { 227 228 if ( is_array( $data ) || is_object( $data ) ) { 229 return serialize( $data ); 230 } 231 232 if ( iwp_is_serialized( $data, false ) ) { 233 return serialize( $data ); 234 } 235 236 return $data; 237 } 238 } 239 240 241 function iwp_recursive_unserialize_replace( $data, $search_replace ) { 242 243 if ( is_string( $data ) ) { 244 return str_replace( array_keys( $search_replace ), array_values( $search_replace ), $data ); 245 } 246 247 if ( is_array( $data ) ) { 248 $data = array_map( function ( $item ) use ( $search_replace ) { 249 return iwp_recursive_unserialize_replace( $item, $search_replace ); 250 }, $data ); 251 } elseif ( is_object( $data ) ) { 252 // Check if the object is __PHP_Incomplete_Class 253 if ( $data instanceof __PHP_Incomplete_Class ) { 254 255 $className = get_class( $data ); 256 257 // iwp_send_migration_log( 'Incomplete Class Warning', "Encountered incomplete class: $className. Make sure this class is loaded before unserialization.", [ 'class' => $className ] ); 258 259 return $data; 260 } 261 262 $properties = []; 263 264 try { 265 $reflection = new ReflectionObject( $data ); 266 $properties = $reflection->getProperties(); 267 } catch ( Exception $e ) { 268 // iwp_send_migration_log( 269 // 'Reflection Error', 270 // "Failed to reflect object of class " . get_class( $data ), 271 // [ 'error' => $e->getMessage() ] 272 // ); 273 274 return $data; 275 } 276 277 echo "<pre>"; print_r( $properties ); echo "</pre>"; 278 279 // foreach ( $properties as $property ) { 280 // try { 281 // $property->setAccessible( true ); 282 // $value = $property->getValue( $data ); 283 // $new_value = iwp_recursive_unserialize_replace( $value, $search_replace ); 284 // $property->setValue( $data, $new_value ); 285 // } catch ( Exception $e ) { 286 // // Skip this property if we can't access it 287 // continue; 288 // } 289 // } 290 } 291 292 return $data; 293 } 294 295 if ( ! function_exists( 'iwp_maybe_unserialize' ) ) { 296 function iwp_maybe_unserialize( $data ) { 297 if ( iwp_is_serialized( $data ) ) { 298 global $search_replace; 299 300 $data = @unserialize( trim( $data ) ); 301 302 if ( is_array( $data ) ) { 303 $data = iwp_recursive_unserialize_replace( $data, $search_replace ); 304 } 305 } 306 307 return $data; 308 } 309 } 310 311 if ( ! function_exists( 'iwp_array_filter_recursive' ) ) { 312 function iwp_array_filter_recursive( array $array, callable $callback = null ) { 313 $array = is_callable( $callback ) ? array_filter( $array, $callback ) : array_filter( $array ); 314 foreach ( $array as &$value ) { 315 if ( is_array( $value ) ) { 316 $value = call_user_func( __FUNCTION__, $value, $callback ); 317 } 318 } 319 320 return $array; 321 } 322 } 323 /** 324 * Custom Functions End 325 */ 326 327 add_action( 'wp_head', function () { 328 if ( isset( $_GET['debug'] ) ) { 329 330 global $mysqli, $search_replace; 331 332 $db_host = 'localhost'; 333 $db_username = 'xifafugelu2996_fogipixuwo5351'; 334 $db_password = '6DLeQM9Aj12sf8VxGvXI'; 335 $db_name = 'xifafugelu2996_9NCiSZ5Dcbl8LQk1Ustq'; 336 $mysqli = new mysqli( $db_host, $db_username, $db_password, $db_name ); 337 $mysqli->set_charset( 'utf8' ); 338 339 $offset = isset( $_GET['offset'] ) ? (int) $_GET['offset'] : 839; 340 $tableName = isset( $_GET['table'] ) ? sanitize_text_field( $_GET['table'] ) : 'AXF_options'; 341 $query = "SELECT * FROM `$tableName` WHERE 1 LIMIT 3 OFFSET $offset"; 342 $result = $mysqli->query( $query ); 343 344 $source_domain = 'astonished-sandpiper-aab1df.instawp.xyz'; 345 $dest_domain = 'roomier-mallard-5683f5.instawp.xyz'; 346 $search_replace = [ 347 '//' . $source_domain => '//' . $dest_domain, 348 '\/\/' . $source_domain => '\/\/' . $dest_domain, 349 ]; 350 351 if ( $mysqli->errno ) { 352 echo "<pre>"; 353 print_r( $mysqli->connect_error ); 354 echo "</pre>"; 355 356 return; 357 } 358 359 while ( $dataRow = $result->fetch_assoc() ) { 360 $columns = array_map( function ( $value ) { 361 global $mysqli; 362 363 if ( empty( $value ) ) { 364 return is_array( $value ) ? [] : ''; 365 } 366 367 return $mysqli->real_escape_string( $value ); 368 }, array_keys( $dataRow ) ); 369 370 $values = array_map( function ( $value ) { 371 global $mysqli; 372 373 if ( is_numeric( $value ) ) { 374 // If $value has leading zero it will mark as string and bypass returning as numeric 375 if ( substr( $value, 0, 1 ) !== '0' ) { 376 return $value; 377 } 378 } else if ( is_null( $value ) ) { 379 return "NULL"; 380 } else if ( is_array( $value ) && empty( $value ) ) { 381 $value = []; 382 } else if ( is_string( $value ) ) { 383 if ( iwp_is_serialized( $value ) ) { 384 $value = iwp_maybe_unserialize( $value ); 385 $value = iwp_maybe_serialize( $value ); 386 } 387 $value = $mysqli->real_escape_string( $value ); 388 } 389 390 return "'" . $value . "'"; 391 }, array_values( $dataRow ) ); 392 393 $sql_query = "INSERT IGNORE INTO `$tableName` (`" . implode( "`, `", $columns ) . "`) VALUES (" . implode( ", ", $values ) . ");"; 394 395 echo "<pre>"; 396 print_r( $sql_query ); 397 echo "</pre>"; 398 } 399 400 die(); 401 } 402 }, 0 ); 403 -
instawp-connect/tags/0.1.0.79/languages/instawp-connect.pot
r3220103 r3227461 6 6 "Content-Type: text/plain; charset=UTF-8\n" 7 7 "Content-Transfer-Encoding: 8bit\n" 8 "POT-Creation-Date: 2025-01- 09 09:06+0000\n"8 "POT-Creation-Date: 2025-01-23 12:44+0000\n" 9 9 "X-Poedit-Basepath: ..\n" 10 10 "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" … … 90 90 msgstr "" 91 91 92 #: includes/apis/class-instawp-rest-api.php:15 192 #: includes/apis/class-instawp-rest-api.php:152 93 93 msgid "This request is not authorized." 94 94 msgstr "" 95 95 96 #: includes/apis/class-instawp-rest-api.php:15 896 #: includes/apis/class-instawp-rest-api.php:159 97 97 msgid "API key and JWT token is required." 98 98 msgstr "" 99 99 100 #: includes/apis/class-instawp-rest-api.php:17 2100 #: includes/apis/class-instawp-rest-api.php:173 101 101 msgid "No user found with the provided username." 102 102 msgstr "" 103 103 104 #: includes/apis/class-instawp-rest-api.php:18 0104 #: includes/apis/class-instawp-rest-api.php:181 105 105 msgid "This user does not have capability to config the website." 106 106 msgstr "" 107 107 108 #: includes/apis/class-instawp-rest-api.php: 199108 #: includes/apis/class-instawp-rest-api.php:200 109 109 msgid "Application password does not match." 110 110 msgstr "" 111 111 112 #: includes/apis/class-instawp-rest-api.php:22 1112 #: includes/apis/class-instawp-rest-api.php:222 113 113 msgid "This website is already connected!" 114 114 msgstr "" 115 115 116 #: includes/apis/class-instawp-rest-api.php:24 1116 #: includes/apis/class-instawp-rest-api.php:242 117 117 msgid "Invalid API domain parameter passed." 118 118 msgstr "" 119 119 120 #: includes/apis/class-instawp-rest-api.php:25 5120 #: includes/apis/class-instawp-rest-api.php:256 121 121 msgid "API Key is not valid." 122 122 msgstr "" 123 123 124 #: includes/apis/class-instawp-rest-api.php:26 2124 #: includes/apis/class-instawp-rest-api.php:263 125 125 msgid "Something went wrong during connecting to InstaWP." 126 126 msgstr "" 127 127 128 #: includes/apis/class-instawp-rest-api.php:2 69128 #: includes/apis/class-instawp-rest-api.php:270 129 129 msgid "Connected." 130 130 msgstr "" 131 131 132 #: includes/apis/class-instawp-rest-api.php:2 89132 #: includes/apis/class-instawp-rest-api.php:290 133 133 msgid "This site is not currently marked as staging" 134 134 msgstr "" 135 135 136 #: includes/apis/class-instawp-rest-api.php:29 7136 #: includes/apis/class-instawp-rest-api.php:298 137 137 msgid "Invalid parent connect ID" 138 138 msgstr "" 139 139 140 #: includes/apis/class-instawp-rest-api.php:30 5140 #: includes/apis/class-instawp-rest-api.php:306 141 141 msgid "Parent connect ID does not match" 142 142 msgstr "" 143 143 144 #: includes/apis/class-instawp-rest-api.php:31 7144 #: includes/apis/class-instawp-rest-api.php:318 145 145 msgid "Site has been marked as parent" 146 146 msgstr "" 147 147 148 #: includes/apis/class-instawp-rest-api.php:33 8148 #: includes/apis/class-instawp-rest-api.php:339 149 149 msgid "Invalid connect ID" 150 150 msgstr "" 151 151 152 #: includes/apis/class-instawp-rest-api.php:3 49152 #: includes/apis/class-instawp-rest-api.php:350 153 153 msgid "Site has been marked as staging" 154 154 msgstr "" 155 155 156 #: includes/apis/class-instawp-rest-api.php:37 0156 #: includes/apis/class-instawp-rest-api.php:371 157 157 msgid "Staging Site List Refreshed." 158 158 msgstr "" 159 159 160 #: includes/apis/class-instawp-rest-api.php:39 2160 #: includes/apis/class-instawp-rest-api.php:393 161 161 msgid "Plugin reset Successful." 162 162 msgstr "" 163 163 164 #: includes/apis/class-instawp-rest-api.php:46 2164 #: includes/apis/class-instawp-rest-api.php:463 165 165 msgid "Activity log is enabled." 166 166 msgstr "" 167 167 168 #: includes/apis/class-instawp-rest-api.php:46 2168 #: includes/apis/class-instawp-rest-api.php:463 169 169 msgid "Activity log is disabled." 170 170 msgstr "" 171 171 172 #: includes/apis/class-instawp-rest-api.php:48 4, includes/functions.php:778172 #: includes/apis/class-instawp-rest-api.php:485, includes/functions.php:778 173 173 msgid "No login information found." 174 174 msgstr "" 175 175 176 #: includes/apis/class-instawp-rest-api.php:54 4176 #: includes/apis/class-instawp-rest-api.php:545 177 177 msgid "All Temporary logins are removed." 178 178 msgstr "" 179 179 180 #: includes/apis/class-instawp-rest-api.php:60 5180 #: includes/apis/class-instawp-rest-api.php:606 181 181 msgid "No items found" 182 182 msgstr "" 183 183 184 #: includes/apis/class-instawp-rest-api.php:61 4184 #: includes/apis/class-instawp-rest-api.php:615 185 185 msgid "Update task create successfully" 186 186 msgstr "" 187 187 188 #: includes/apis/class-instawp-rest-api.php:67 5188 #: includes/apis/class-instawp-rest-api.php:676 189 189 msgid "Empty bearer token." 190 190 msgstr "" 191 191 192 #: includes/apis/class-instawp-rest-api.php:68 8192 #: includes/apis/class-instawp-rest-api.php:689 193 193 msgid "Empty api key." 194 194 msgstr "" 195 195 196 #: includes/apis/class-instawp-rest-api.php:70 3196 #: includes/apis/class-instawp-rest-api.php:704 197 197 msgid "Invalid bearer token." 198 198 msgstr "" 199 199 200 #: includes/apis/class-instawp-rest-api.php:84 0200 #: includes/apis/class-instawp-rest-api.php:841 201 201 msgid "Route not allowed" 202 202 msgstr "" 203 203 204 #: includes/apis/class-instawp-rest-api.php:94 3, includes/class-instawp-setting.php:583, includes/class-instawp-setting.php:589204 #: includes/apis/class-instawp-rest-api.php:944, includes/class-instawp-setting.php:583, includes/class-instawp-setting.php:589 205 205 msgid "Heartbeat" 206 206 msgstr "" 207 207 208 #: includes/apis/class-instawp-rest-api.php:94 4, includes/class-instawp-hooks.php:285, includes/class-instawp-setting.php:249, includes/class-instawp-setting.php:621208 #: includes/apis/class-instawp-rest-api.php:945, includes/class-instawp-hooks.php:285, includes/class-instawp-setting.php:249, includes/class-instawp-setting.php:621 209 209 msgid "Database Manager" 210 210 msgstr "" 211 211 212 #: includes/apis/class-instawp-rest-api.php:94 5, includes/class-instawp-setting.php:629212 #: includes/apis/class-instawp-rest-api.php:946, includes/class-instawp-setting.php:629 213 213 msgid "Install Plugin / Themes" 214 214 msgstr "" 215 215 216 #: includes/apis/class-instawp-rest-api.php:94 6, includes/class-instawp-setting.php:637216 #: includes/apis/class-instawp-rest-api.php:947, includes/class-instawp-setting.php:637 217 217 msgid "Update Core / Plugin / Themes" 218 218 msgstr "" 219 219 220 #: includes/apis/class-instawp-rest-api.php:94 7, includes/class-instawp-setting.php:645220 #: includes/apis/class-instawp-rest-api.php:948, includes/class-instawp-setting.php:645 221 221 msgid "Activate / Deactivate" 222 222 msgstr "" 223 223 224 #: includes/apis/class-instawp-rest-api.php:94 8, includes/class-instawp-setting.php:653224 #: includes/apis/class-instawp-rest-api.php:949, includes/class-instawp-setting.php:653 225 225 msgid "Config Management" 226 226 msgstr "" 227 227 228 #: includes/apis/class-instawp-rest-api.php:9 49, includes/class-instawp-setting.php:661228 #: includes/apis/class-instawp-rest-api.php:950, includes/class-instawp-setting.php:661 229 229 msgid "Site Inventory" 230 230 msgstr "" 231 231 232 #: includes/apis/class-instawp-rest-api.php:95 0, includes/class-instawp-setting.php:250, includes/class-instawp-setting.php:669232 #: includes/apis/class-instawp-rest-api.php:951, includes/class-instawp-setting.php:250, includes/class-instawp-setting.php:669 233 233 msgid "Debug Log" 234 234 msgstr "" … … 730 730 msgstr "" 731 731 732 #: includes/class-instawp-tools.php:70 1732 #: includes/class-instawp-tools.php:709 733 733 msgid "API key not found" 734 734 msgstr "" 735 735 736 #: includes/class-instawp-tools.php:9 26736 #: includes/class-instawp-tools.php:934 737 737 msgid "Root directory for this WordPress installation could not find." 738 738 msgstr "" 739 739 740 #: includes/class-instawp-tools.php:9 47740 #: includes/class-instawp-tools.php:955 741 741 msgid "Tracking database could not found." 742 742 msgstr "" 743 743 744 #: includes/class-instawp-tools.php:9 57744 #: includes/class-instawp-tools.php:965 745 745 msgid "API Signature and others data could not set properly" 746 746 msgstr "" 747 747 748 #: includes/class-instawp-tools.php:9 83748 #: includes/class-instawp-tools.php:991 749 749 msgid "InstaWP could not access or read required files from your WordPress directory due to file permission issue." 750 750 msgstr "" 751 751 752 #: includes/class-instawp-tools.php:9 85752 #: includes/class-instawp-tools.php:993 753 753 msgid "Learn more." 754 754 msgstr "" 755 755 756 #: includes/class-instawp-tools.php:1 193756 #: includes/class-instawp-tools.php:1201 757 757 msgid "Launch %s" 758 758 msgstr "" 759 759 760 #: includes/class-instawp-tools.php:128 1760 #: includes/class-instawp-tools.php:1289 761 761 msgid "Please create staging sites first." 762 762 msgstr "" 763 763 764 #: includes/class-instawp-tools.php:12 82764 #: includes/class-instawp-tools.php:1290 765 765 msgid "Skip" 766 766 msgstr "" 767 767 768 #: includes/class-instawp-tools.php:12 83768 #: includes/class-instawp-tools.php:1291 769 769 msgid "Do you really want to disconnect the plugin? It will completely remove the existing staging sites from the plugin." 770 770 msgstr "" 771 771 772 #: includes/class-instawp-tools.php:12 84772 #: includes/class-instawp-tools.php:1292 773 773 msgid "Do you still want to disconnect the plugin?" 774 774 msgstr "" 775 775 776 #: includes/class-instawp-tools.php:13 32776 #: includes/class-instawp-tools.php:1340 777 777 msgid "Zip archive is not opening." 778 778 msgstr "" 779 779 780 #: includes/class-instawp-tools.php:13 85780 #: includes/class-instawp-tools.php:1393 781 781 msgid "No compression method find." 782 782 msgstr "" 783 783 784 #: includes/class-instawp-tools.php:14 29784 #: includes/class-instawp-tools.php:1437 785 785 msgid "Site ID not found in site create response." 786 786 msgstr "" 787 787 788 #: includes/class-instawp-tools.php:14 68788 #: includes/class-instawp-tools.php:1476 789 789 msgid "SFTP login failed." 790 790 msgstr "" 791 791 792 #: includes/class-instawp-tools.php:14 79792 #: includes/class-instawp-tools.php:1487 793 793 msgid "SFTP upload failed for files." 794 794 msgstr "" 795 795 796 #: includes/class-instawp-tools.php:14 87796 #: includes/class-instawp-tools.php:1495 797 797 msgid "SFTP upload failed for database." 798 798 msgstr "" -
instawp-connect/tags/0.1.0.79/readme.txt
r3223388 r3227461 5 5 Tested up to: 6.7 6 6 Requires PHP: 7.0 7 Stable tag: 0.1.0.7 87 Stable tag: 0.1.0.79 8 8 License: GPLv3 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-3.0.en.html … … 99 99 == Changelog == 100 100 101 = 0.1.0.79 - 23 January 2025 = 102 - FIX: Fixed default username for magic login. 103 - FIX: Added managed parameter to config API. 104 - FIX: Fixed cache clearing issue with WP Rocket. 105 - FIX: Push migration exclude files check. 106 101 107 = 0.1.0.78 - 16 January 2025 = 102 108 - NEW: Added extra log message for handling pull migration failure. -
instawp-connect/tags/0.1.0.79/vendor/composer/InstalledVersions.php
r3216309 r3227461 32 32 */ 33 33 private static $installed; 34 35 /** 36 * @var bool 37 */ 38 private static $installedIsLocalDir; 34 39 35 40 /** … … 310 315 self::$installed = $data; 311 316 self::$installedByVendor = array(); 317 318 // when using reload, we disable the duplicate protection to ensure that self::$installed data is 319 // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, 320 // so we have to assume it does not, and that may result in duplicate data being returned when listing 321 // all installed packages for example 322 self::$installedIsLocalDir = false; 312 323 } 313 324 … … 326 337 327 338 if (self::$canGetVendors) { 339 $selfDir = strtr(__DIR__, '\\', '/'); 328 340 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { 341 $vendorDir = strtr($vendorDir, '\\', '/'); 329 342 if (isset(self::$installedByVendor[$vendorDir])) { 330 343 $installed[] = self::$installedByVendor[$vendorDir]; … … 334 347 self::$installedByVendor[$vendorDir] = $required; 335 348 $installed[] = $required; 336 if (s trtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {349 if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { 337 350 self::$installed = $required; 338 $copiedLocalDir = true;351 self::$installedIsLocalDir = true; 339 352 } 353 } 354 if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { 355 $copiedLocalDir = true; 340 356 } 341 357 } -
instawp-connect/tags/0.1.0.79/vendor/composer/installed.json
r3218292 r3227461 8 8 "type": "git", 9 9 "url": "https://github.com/InstaWP/connect-helpers.git", 10 "reference": " 4e5a060b35cdcc903ee2165e1cb5b2794437cf74"11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/InstaWP/connect-helpers/zipball/ 4e5a060b35cdcc903ee2165e1cb5b2794437cf74",15 "reference": " 4e5a060b35cdcc903ee2165e1cb5b2794437cf74",10 "reference": "2e60645a8e670973fba99dcbb9cecd8c9e3eefd1" 11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/InstaWP/connect-helpers/zipball/2e60645a8e670973fba99dcbb9cecd8c9e3eefd1", 15 "reference": "2e60645a8e670973fba99dcbb9cecd8c9e3eefd1", 16 16 "shasum": "" 17 17 }, … … 20 20 "wp-cli/wp-config-transformer": "^1.3" 21 21 }, 22 "time": "2025-01- 02T11:30:59+00:00",22 "time": "2025-01-23T09:43:33+00:00", 23 23 "default-branch": true, 24 24 "type": "library", … … 48 48 "description": "CLI Package for InstaWP Remote Features", 49 49 "support": { 50 "source": "https://github.com/InstaWP/connect-helpers/tree/ main",50 "source": "https://github.com/InstaWP/connect-helpers/tree/1.0.1", 51 51 "issues": "https://github.com/InstaWP/connect-helpers/issues" 52 52 }, … … 291 291 { 292 292 "name": "woocommerce/action-scheduler", 293 "version": "3.9. 0",294 "version_normalized": "3.9. 0.0",293 "version": "3.9.1", 294 "version_normalized": "3.9.1.0", 295 295 "source": { 296 296 "type": "git", 297 297 "url": "https://github.com/woocommerce/action-scheduler.git", 298 "reference": " 90b98e6fe97d455679b1d288f050cad8f6f79771"299 }, 300 "dist": { 301 "type": "zip", 302 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/ 90b98e6fe97d455679b1d288f050cad8f6f79771",303 "reference": " 90b98e6fe97d455679b1d288f050cad8f6f79771",298 "reference": "d73b5f83cd42832fa137e03687bad3e312298d29" 299 }, 300 "dist": { 301 "type": "zip", 302 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/d73b5f83cd42832fa137e03687bad3e312298d29", 303 "reference": "d73b5f83cd42832fa137e03687bad3e312298d29", 304 304 "shasum": "" 305 305 }, … … 313 313 "yoast/phpunit-polyfills": "^2.0" 314 314 }, 315 "time": "202 4-11-15T00:11:39+00:00",315 "time": "2025-01-21T11:39:08+00:00", 316 316 "type": "wordpress-plugin", 317 317 "extra": { … … 331 331 "support": { 332 332 "issues": "https://github.com/woocommerce/action-scheduler/issues", 333 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9. 0"333 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.1" 334 334 }, 335 335 "install-path": "../woocommerce/action-scheduler" -
instawp-connect/tags/0.1.0.79/vendor/composer/installed.php
r3218292 r3227461 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => '5 e2939ad37db1d19f4609420ae51403a96362415',6 'reference' => '5419ef006247c7db8093cc35d038fc2b0e25fb7a', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => '5 e2939ad37db1d19f4609420ae51403a96362415',16 'reference' => '5419ef006247c7db8093cc35d038fc2b0e25fb7a', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', … … 23 23 'pretty_version' => 'dev-main', 24 24 'version' => 'dev-main', 25 'reference' => ' 4e5a060b35cdcc903ee2165e1cb5b2794437cf74',25 'reference' => '2e60645a8e670973fba99dcbb9cecd8c9e3eefd1', 26 26 'type' => 'library', 27 27 'install_path' => __DIR__ . '/../instawp/connect-helpers', … … 59 59 ), 60 60 'woocommerce/action-scheduler' => array( 61 'pretty_version' => '3.9. 0',62 'version' => '3.9. 0.0',63 'reference' => ' 90b98e6fe97d455679b1d288f050cad8f6f79771',61 'pretty_version' => '3.9.1', 62 'version' => '3.9.1.0', 63 'reference' => 'd73b5f83cd42832fa137e03687bad3e312298d29', 64 64 'type' => 'wordpress-plugin', 65 65 'install_path' => __DIR__ . '/../woocommerce/action-scheduler', -
instawp-connect/tags/0.1.0.79/vendor/instawp/connect-helpers/connect-helpers.php
r2957903 r3227461 4 4 * 5 5 * @package InstaWP\Connect\Helpers 6 * @copyright Copyright (C) 202 3, InstaWP7 * @link http ://instawp.com6 * @copyright Copyright (C) 2025, InstaWP 7 * @link https://instawp.com 8 8 * @since 1.0.0 9 9 * 10 10 * @wordpress-plugin 11 11 * Plugin Name: InstaWP Connect Helpers 12 * Version: 1.0. 012 * Version: 1.0.1 13 13 * Plugin URI: https://instawp.com 14 14 * Description: Helpers Package for InstaWP Remote Features. … … 18 18 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt 19 19 * Requires at least: 5.6 20 * Tested up to: 6. 320 * Tested up to: 6.7 21 21 */ 22 22 -
instawp-connect/tags/0.1.0.79/vendor/instawp/connect-helpers/src/Cache.php
r3147089 r3227461 43 43 // WP Rocket. 44 44 if ( is_plugin_active( 'wp-rocket/wp-rocket.php' ) ) { 45 $message = ''; 46 47 if ( function_exists( 'rocket_clean_minify' ) && function_exists( 'rocket_clean_domain' ) ) { 48 rocket_clean_minify(); 49 rocket_clean_domain(); 50 } else { 51 $message = 'Function not exists.'; 52 } 45 $functions = [ 46 'rocket_clean_minify', 47 'rocket_clean_domain', 48 'rocket_clean_cache_busting', 49 [ 'rocket_dismiss_box', 'rocket_warning_plugin_modification' ], 50 [ 'rocket_renew_box', 'preload_notice' ] 51 ]; 52 53 $executed = array_reduce( $functions, function( $count, $item ) { 54 if ( is_array( $item ) ) { 55 $func = $item[0]; 56 $arg = $item[1]; 57 if ( function_exists( $func ) ) { 58 $func( $arg ); 59 return $count + 1; 60 } 61 } elseif ( function_exists( $item )) { 62 $item(); 63 return $count + 1; 64 } 65 return $count; 66 }, 0 ); 53 67 54 68 $results[] = [ 55 69 'slug' => 'wp-rocket', 56 70 'name' => 'WP Rocket', 57 'message' => $ message71 'message' => $executed === 0 ? 'Function not exists.' : '' 58 72 ]; 59 73 } -
instawp-connect/tags/0.1.0.79/vendor/instawp/connect-helpers/src/Helper.php
r3218292 r3227461 181 181 182 182 public static function get_admin_username() { 183 if ( current_user_can( 'manage_options' ) ) { 184 $current_user = wp_get_current_user(); 185 186 if ( ! empty( $current_user ) ) { 187 return $current_user->user_login; 188 } 189 } 190 183 191 $username = ''; 184 192 -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/action-scheduler.php
r3194914 r3227461 6 6 * Author: Automattic 7 7 * Author URI: https://automattic.com/ 8 * Version: 3.9. 08 * Version: 3.9.1 9 9 * License: GPLv3 10 10 * Requires at least: 6.5 11 * Tested up to: 6. 711 * Tested up to: 6.5 12 12 * Requires PHP: 7.1 13 13 * … … 30 30 */ 31 31 32 if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_ 0' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION.32 if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_1' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION. 33 33 34 34 if ( ! class_exists( 'ActionScheduler_Versions', false ) ) { … … 37 37 } 38 38 39 add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_ 0', 0, 0 ); // WRCS: DEFINED_VERSION.39 add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_1', 0, 0 ); // WRCS: DEFINED_VERSION. 40 40 41 41 // phpcs:disable Generic.Functions.OpeningFunctionBraceKernighanRitchie.ContentAfterBrace … … 43 43 * Registers this version of Action Scheduler. 44 44 */ 45 function action_scheduler_register_3_dot_9_dot_ 0() { // WRCS: DEFINED_VERSION.45 function action_scheduler_register_3_dot_9_dot_1() { // WRCS: DEFINED_VERSION. 46 46 $versions = ActionScheduler_Versions::instance(); 47 $versions->register( '3.9. 0', 'action_scheduler_initialize_3_dot_9_dot_0' ); // WRCS: DEFINED_VERSION.47 $versions->register( '3.9.1', 'action_scheduler_initialize_3_dot_9_dot_1' ); // WRCS: DEFINED_VERSION. 48 48 } 49 49 … … 52 52 * Initializes this version of Action Scheduler. 53 53 */ 54 function action_scheduler_initialize_3_dot_9_dot_ 0() { // WRCS: DEFINED_VERSION.54 function action_scheduler_initialize_3_dot_9_dot_1() { // WRCS: DEFINED_VERSION. 55 55 // A final safety check is required even here, because historic versions of Action Scheduler 56 56 // followed a different pattern (in some unusual cases, we could reach this point and the … … 64 64 // Support usage in themes - load this version if no plugin has loaded a version yet. 65 65 if ( did_action( 'plugins_loaded' ) && ! doing_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler', false ) ) { 66 action_scheduler_initialize_3_dot_9_dot_ 0(); // WRCS: DEFINED_VERSION.66 action_scheduler_initialize_3_dot_9_dot_1(); // WRCS: DEFINED_VERSION. 67 67 do_action( 'action_scheduler_pre_theme_init' ); 68 68 ActionScheduler_Versions::initialize_latest_version(); -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/changelog.txt
r3194914 r3227461 1 1 *** Changelog *** 2 3 = 3.9.1 - 2025-01-21 = 4 * A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts. 5 * New wp action-scheduler source command to help determine how Action Scheduler is being loaded. 6 * Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer. 7 * Make some other nullable parameters explicitly nullable. 8 * Set option value to `no` rather than deleting. 2 9 3 10 = 3.9.0 - 2024-11-14 = -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php
r3194914 r3227461 9 9 * Return stored actions for given params. 10 10 * 11 * @param string $status The action's status in the data store.12 * @param string $hook The hook to trigger when this action runs.13 * @param array $args Args to pass to callbacks when the hook is triggered.14 * @param ActionScheduler_Schedule $schedule The action's schedule.15 * @param string $group A group to put the action in.11 * @param string $status The action's status in the data store. 12 * @param string $hook The hook to trigger when this action runs. 13 * @param array $args Args to pass to callbacks when the hook is triggered. 14 * @param ActionScheduler_Schedule|null $schedule The action's schedule. 15 * @param string $group A group to put the action in. 16 16 * phpcs:ignore Squiz.Commenting.FunctionComment.ExtraParamComment 17 * @param int $priority The action priority.17 * @param int $priority The action priority. 18 18 * 19 19 * @return ActionScheduler_Action An instance of the stored action. 20 20 */ 21 public function get_stored_action( $status, $hook, array $args = array(), ActionScheduler_Schedule $schedule = null, $group = '' ) {21 public function get_stored_action( $status, $hook, array $args = array(), ?ActionScheduler_Schedule $schedule = null, $group = '' ) { 22 22 // The 6th parameter ($priority) is not formally declared in the method signature to maintain compatibility with 23 23 // third-party subclasses created before this param was added. -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php
r3194914 r3227461 251 251 } 252 252 253 $as_version = ActionScheduler_Versions::instance()->latest_version(); 253 $as_version = ActionScheduler_Versions::instance()->latest_version(); 254 $as_source = ActionScheduler_Versions::instance()->active_source(); 255 $as_source_path = ActionScheduler_Versions::instance()->active_source_path(); 256 $as_source_markup = sprintf( '<code>%s</code>', esc_html( $as_source_path ) ); 257 258 if ( ! empty( $as_source ) ) { 259 $as_source_markup = sprintf( 260 '%s: <abbr title="%s">%s</abbr>', 261 ucfirst( $as_source['type'] ), 262 esc_attr( $as_source_path ), 263 esc_html( $as_source['name'] ) 264 ); 265 } 266 254 267 $screen->add_help_tab( 255 268 array( … … 261 274 '<p>' . 262 275 __( 'Action Scheduler is a scalable, traceable job queue for background processing large sets of actions. Action Scheduler works by triggering an action hook to run at some time in the future. Scheduled actions can also be scheduled to run on a recurring schedule.', 'action-scheduler' ) . 276 '</p>' . 277 '<h3>' . esc_html__( 'Source', 'action-scheduler' ) . '</h3>' . 278 '<p>' . 279 esc_html__( 'Action Scheduler is currently being loaded from the following location. This can be useful when debugging, or if requested by the support team.', 'action-scheduler' ) . 280 '</p>' . 281 '<p>' . $as_source_markup . '</p>' . 282 '<h3>' . esc_html__( 'WP CLI', 'action-scheduler' ) . '</h3>' . 283 '<p>' . 284 sprintf( 285 /* translators: %1$s is WP CLI command (not translatable) */ 286 esc_html__( 'WP CLI commands are available: execute %1$s for a list of available commands.', 'action-scheduler' ), 287 '<code>wp help action-scheduler</code>' 288 ) . 263 289 '</p>', 264 290 ) -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php
r3194914 r3227461 20 20 21 21 /** 22 * Registered sources. 23 * 24 * @var array<string, string> 25 */ 26 private $sources = array(); 27 28 /** 22 29 * Register version's callback. 23 30 * … … 29 36 return false; 30 37 } 38 39 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace 40 $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ); 41 $source = $backtrace[0]['file']; 42 31 43 $this->versions[ $version_string ] = $initialization_callback; 44 $this->sources[ $source ] = $version_string; 32 45 return true; 33 46 } … … 38 51 public function get_versions() { 39 52 return $this->versions; 53 } 54 55 /** 56 * Get registered sources. 57 * 58 * @return array<string, string> 59 */ 60 public function get_sources() { 61 return $this->sources; 40 62 } 41 63 … … 87 109 call_user_func( $self->latest_version_callback() ); 88 110 } 111 112 /** 113 * Returns information about the plugin or theme which contains the current active version 114 * of Action Scheduler. 115 * 116 * If this cannot be determined, or if Action Scheduler is being loaded via some other 117 * method, then it will return an empty array. Otherwise, if populated, the array will 118 * look like the following: 119 * 120 * [ 121 * 'type' => 'plugin', # or 'theme' 122 * 'name' => 'Name', 123 * ] 124 * 125 * @return array 126 */ 127 public function active_source(): array { 128 $file = __FILE__; 129 $dir = __DIR__; 130 $plugins = get_plugins(); 131 $plugin_files = array_keys( $plugins ); 132 133 foreach ( $plugin_files as $plugin_file ) { 134 $plugin_path = trailingslashit( WP_PLUGIN_DIR ) . dirname( $plugin_file ); 135 $plugin_file = trailingslashit( WP_PLUGIN_DIR ) . $plugin_file; 136 137 if ( 0 !== strpos( dirname( $dir ), $plugin_path ) ) { 138 continue; 139 } 140 141 $plugin_data = get_plugin_data( $plugin_file ); 142 143 if ( ! is_array( $plugin_data ) || empty( $plugin_data['Name'] ) ) { 144 continue; 145 } 146 147 return array( 148 'type' => 'plugin', 149 'name' => $plugin_data['Name'], 150 ); 151 } 152 153 $themes = (array) search_theme_directories(); 154 155 foreach ( $themes as $slug => $data ) { 156 $needle = trailingslashit( $data['theme_root'] ) . $slug . '/'; 157 158 if ( 0 !== strpos( $file, $needle ) ) { 159 continue; 160 } 161 162 $theme = wp_get_theme( $slug ); 163 164 if ( ! is_object( $theme ) || ! is_a( $theme, \WP_Theme::class ) ) { 165 continue; 166 } 167 168 return array( 169 'type' => 'theme', 170 // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase 171 'name' => $theme->Name, 172 ); 173 } 174 175 return array(); 176 } 177 178 /** 179 * Returns the directory path for the currently active installation of Action Scheduler. 180 * 181 * @return string 182 */ 183 public function active_source_path(): string { 184 return trailingslashit( dirname( __DIR__ ) ); 185 } 89 186 } -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php
r3194914 r3227461 67 67 */ 68 68 public static function maybe_schedule_cleanup() { 69 $has_logs = 'no'; 70 69 71 $args = array( 70 72 'type' => ActionScheduler_wpCommentLogger::TYPE, … … 74 76 75 77 if ( (bool) get_comments( $args ) ) { 76 update_option( self::$has_logs_option_key, 'yes' );78 $has_logs = 'yes'; 77 79 78 80 if ( ! as_next_scheduled_action( self::$cleanup_hook ) ) { … … 80 82 } 81 83 } 84 85 update_option( self::$has_logs_option_key, $has_logs, true ); 82 86 } 83 87 … … 96 100 ); 97 101 98 delete_option( self::$has_logs_option_key);102 update_option( self::$has_logs_option_key, 'no', true ); 99 103 } 100 104 -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php
r3194914 r3227461 241 241 WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Scheduler_command' ); 242 242 WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Clean_Command' ); 243 WP_CLI::add_command( 'action-scheduler action', '\Action_Scheduler\WP_CLI\Action_Command' ); 244 WP_CLI::add_command( 'action-scheduler', '\Action_Scheduler\WP_CLI\System_Command' ); 243 245 if ( ! ActionScheduler_DataController::is_migration_complete() && Controller::instance()->allow_migration() ) { 244 246 $command = new Migration_Command(); … … 297 299 'ActionScheduler_Store' => true, 298 300 'ActionScheduler_TimezoneHelper' => true, 301 'ActionScheduler_WPCLI_Command' => true, 299 302 ); 300 303 … … 341 344 protected static function is_class_cli( $class ) { 342 345 static $cli_segments = array( 343 'QueueRunner' => true, 344 'Command' => true, 345 'ProgressBar' => true, 346 'QueueRunner' => true, 347 'Command' => true, 348 'ProgressBar' => true, 349 '\Action_Scheduler\WP_CLI\Action_Command' => true, 350 '\Action_Scheduler\WP_CLI\System_Command' => true, 346 351 ); 347 352 -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php
r3051765 r3227461 14 14 * @return DateTime|null 15 15 */ 16 public function next( DateTime $after = null ) {16 public function next( ?DateTime $after = null ) { 17 17 if ( empty( $after ) ) { 18 18 $return_value = $this->get_date(); -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php
r3051765 r3227461 55 55 * @return CronExpression 56 56 */ 57 public static function factory($expression, CronExpression_FieldFactory $fieldFactory = null)57 public static function factory($expression, ?CronExpression_FieldFactory $fieldFactory = null) 58 58 { 59 59 $mappings = array( -
instawp-connect/tags/0.1.0.79/vendor/woocommerce/action-scheduler/readme.txt
r3194914 r3227461 2 2 Contributors: Automattic, wpmuguru, claudiosanches, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, royho, barryhughes-1 3 3 Tags: scheduler, cron 4 Stable tag: 3.9. 04 Stable tag: 3.9.1 5 5 License: GPLv3 6 6 Requires at least: 6.5 7 Tested up to: 6. 77 Tested up to: 6.5 8 8 Requires PHP: 7.1 9 9 … … 47 47 48 48 == Changelog == 49 50 = 3.9.1 - 2025-01-21 = 51 * A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts. 52 * New wp action-scheduler source command to help determine how Action Scheduler is being loaded. 53 * Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer. 54 * Make some other nullable parameters explicitly nullable. 55 * Set option value to `no` rather than deleting. 49 56 50 57 = 3.9.0 - 2024-11-14 = -
instawp-connect/trunk/dest.php
r3216309 r3227461 5 5 include_once 'includes/functions-pull-push.php'; 6 6 7 if ( ! file_exists( 'iwp_log.txt' ) ) {8 file_put_contents( 'iwp_log.txt', "Migration log started \n" );9 }10 11 7 if ( ! isset( $_SERVER['HTTP_X_IWP_MIGRATE_KEY'] ) || empty( $migrate_key = $_SERVER['HTTP_X_IWP_MIGRATE_KEY'] ) ) { 12 8 header( 'x-iwp-status: false' ); … … 26 22 } 27 23 28 //$options_data_path = $root_dir_path . DIRECTORY_SEPARATORz . 'wp-content' . DIRECTORY_SEPARATOR . 'instawpbackups' . DIRECTORY_SEPARATOR . 'migrate-push-db-' . substr( $migrate_key, 0, 5 ) . '.txt'; 24 $log_file_path = $root_dir_path . DIRECTORY_SEPARATOR . 'iwp-push-log.txt'; 25 $received_db_path = $root_dir_path . DIRECTORY_SEPARATOR . 'iwp-db-received.sql'; 29 26 $options_data_path = $root_dir_path . DIRECTORY_SEPARATOR . 'migrate-push-db-' . substr( $migrate_key, 0, 5 ) . '.txt'; 30 27 … … 89 86 $req_order = isset( $_GET['r'] ) ? intval( $_GET['r'] ) : 1; 90 87 91 //if ( ! file_exists( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt' ) ) {92 // file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', json_encode( $user_details ) . "\n" . json_encode( $retain_user ) );93 //}94 95 88 if ( in_array( $file_relative_path, $excluded_paths ) ) { 96 89 exit( 0 ); … … 98 91 99 92 $file_save_path = $root_dir_path . DIRECTORY_SEPARATOR . $file_relative_path; 100 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "full path: " . $file_save_path . "\n", FILE_APPEND ); 93 101 94 if ( in_array( $file_save_path, $excluded_paths ) || str_contains( $file_save_path, 'instawp-autologin' ) ) { 102 95 exit( 0 ); 103 96 } 104 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "full path success" . "\n", FILE_APPEND );105 97 106 98 $directory_name = dirname( $file_save_path ); … … 121 113 unlink( $file_save_path ); 122 114 } 123 // $file_save_path = $root_dir_path . DIRECTORY_SEPARATOR . time() . '.sql'; // added for debugging124 115 $file_stream = fopen( $file_save_path, 'a+b' ); 125 116 } else { … … 212 203 $commands = explode( ";\n\n", $sql_commands ); 213 204 205 file_put_contents( $received_db_path, $sql_commands, FILE_APPEND ); 206 214 207 foreach ( $commands as $command ) { 215 208 if ( ! empty( trim( $command ) ) ) { … … 231 224 if ( isset( $_SERVER['HTTP_X_IWP_PROGRESS'] ) ) { 232 225 $log_content = "x-iwp-progress: {$_SERVER['HTTP_X_IWP_PROGRESS']}\n"; 233 file_put_contents( 'iwp_log.txt', $log_content, FILE_APPEND );226 file_put_contents( $log_file_path, $log_content, FILE_APPEND ); 234 227 } 235 228 236 229 if ( isset( $_SERVER['HTTP_X_IWP_PROGRESS'] ) && $_SERVER['HTTP_X_IWP_PROGRESS'] == 100 ) { 237 238 file_put_contents( 'iwp_log.txt', "Retain User: " . var_dump( $retain_user ), FILE_APPEND );239 file_put_contents( 'iwp_log.txt', "User Details: " . json_encode( $user_details ), FILE_APPEND );240 230 241 231 // Retaining user after migration … … 262 252 $query = "INSERT INTO {$table_prefix}users ($fields) VALUES ($values)"; 263 253 264 file_put_contents( 'iwp_log.txt', "Query: " . $query, FILE_APPEND );265 266 254 $query_response = $mysqli->query( $query ); 267 268 file_put_contents( 'iwp_log.txt', "Query Response: " . json_encode( $query_response ), FILE_APPEND );269 255 270 256 if ( $query_response ) { 271 257 $user_id = $mysqli->insert_id; 272 258 273 file_put_contents( 'iwp_log.txt', "User ID: " . json_encode( $user_id ), FILE_APPEND );274 275 259 if ( $user_id ) { 276 277 260 // Set user capabilities 278 261 $caps_key = $mysqli->real_escape_string( $table_prefix . 'capabilities' ); … … 290 273 291 274 if ( $mysqli->error ) { 292 file_put_contents( 'iwp_log.txt', "insert response: " . $mysqli->error . "\n", FILE_APPEND );275 file_put_contents( $log_file_path, "insert response: " . $mysqli->error . "\n", FILE_APPEND ); 293 276 } 294 277 } … … 300 283 301 284 try { 302 $query = "INSERT INTO `{$table_prefix}options` (`option_name`, `option_value`) VALUES('instawp_api_options', '{$instawp_api_options}')"; 303 304 // log start 305 file_put_contents( 'iwp_log.txt', "insert query: " . $query . "\n", FILE_APPEND ); 306 // log end 307 285 $query = "INSERT INTO `{$table_prefix}options` (`option_name`, `option_value`) VALUES('instawp_api_options', '{$instawp_api_options}')"; 308 286 $insert_response = $mysqli->query( $query ); 309 310 // log start311 file_put_contents( 'iwp_log.txt', "insert response: " . var_dump( $insert_response ) . "\n", FILE_APPEND );312 // log end313 287 314 288 if ( ! $insert_response ) { … … 316 290 } 317 291 } catch ( Exception $e ) { 318 // log start 319 file_put_contents( 'iwp_log.txt', "insert exception: " . $e->getMessage() . "\n", FILE_APPEND ); 320 // log end 292 file_put_contents( $log_file_path, "insert exception: " . $e->getMessage() . "\n", FILE_APPEND ); 321 293 322 294 $is_insert_failed = true; … … 325 297 if ( $is_insert_failed ) { 326 298 try { 327 $query = "UPDATE `{$table_prefix}options` SET `option_value` = '{$instawp_api_options}' WHERE `option_name` = 'instawp_api_options'"; 328 329 // log start 330 file_put_contents( 'iwp_log.txt', "update query: " . $query . "\n", FILE_APPEND ); 331 // log end 332 299 $query = "UPDATE `{$table_prefix}options` SET `option_value` = '{$instawp_api_options}' WHERE `option_name` = 'instawp_api_options'"; 333 300 $update_response = $mysqli->query( $query ); 334 335 // log start336 file_put_contents( 'iwp_log.txt', "update response: " . var_dump( $update_response ) . "\n", FILE_APPEND );337 // log end338 301 } catch ( Exception $e ) { 302 file_put_contents( $log_file_path, "Update failed. Error message: {$e->getMessage()}\n", FILE_APPEND ); 303 339 304 header( 'x-iwp-status: false' ); 340 305 header( "x-iwp-message: Update failed. Error message: {$e->getMessage()}\n" ); … … 355 320 } 356 321 357 if ( file_exists( $file_save_path ) ) {358 unlink( $file_save_path );359 }322 // if ( file_exists( $file_save_path ) ) { 323 // unlink( $file_save_path ); 324 // } 360 325 } 361 326 … … 373 338 $file_name = $zip->getNameIndex( $i ); 374 339 375 if ( ! array_contains_str( $directory_name . DIRECTORY_SEPARATOR . $file_name, $excluded_paths ) && ! str_contains( $file_name, 'instawp-autologin' ) ) { 376 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "zip path: " . $directory_name . DIRECTORY_SEPARATOR . $file_name . "\n", FILE_APPEND ); 340 if ( false !== strpos( $directory_name, DIRECTORY_SEPARATOR . 'wp-content' ) || false !== strpos( $directory_name, DIRECTORY_SEPARATOR . 'wp-includes' ) || false !== strpos( $directory_name, DIRECTORY_SEPARATOR . 'wp-admin' ) ) { 341 if ( ! array_contains_str( $directory_name . DIRECTORY_SEPARATOR . $file_name, $excluded_paths ) && ! str_contains( $file_name, 'instawp-autologin' ) ) { 342 $extracted_files[] = $file_name; 343 } 344 } else if ( ! in_array( $file_name, $excluded_paths ) && ! str_contains( $file_name, 'instawp-autologin' ) ) { 377 345 $extracted_files[] = $file_name; 378 346 } … … 448 416 449 417 if ( str_contains( $file_relative_path, 'wp-config.php' ) || $is_wp_config_file ) { 450 //file_put_contents( $root_dir_path . DIRECTORY_SEPARATOR . 'iwp_log.txt', "wp-config.php" . "\n", FILE_APPEND );451 418 if ( ! isset( $db_host ) || ! isset( $db_username ) || ! isset( $db_password ) || ! isset( $db_name ) ) { 452 419 header( 'x-iwp-status: false' ); -
instawp-connect/trunk/includes/apis/class-instawp-rest-api.php
r3220103 r3227461 145 145 $api_domain = isset( $parameters['api_domain'] ) ? sanitize_text_field( $parameters['api_domain'] ) : ''; 146 146 $plan_id = isset( $parameters['advance_connect_plan_id'] ) ? intval( $parameters['advance_connect_plan_id'] ) : 0; 147 $managed = isset( $parameters['managed'] ) ? boolval( $parameters['managed'] ) : true; 147 148 148 149 if ( empty( $wp_username ) || empty( $application_password ) ) { … … 250 251 } 251 252 252 if ( ! Helper::instawp_generate_api_key( $api_key, $jwt ) ) {253 if ( ! Helper::instawp_generate_api_key( $api_key, $jwt, $managed ) ) { 253 254 return $this->send_response( array( 254 255 'status' => false, -
instawp-connect/trunk/includes/class-instawp-tools.php
r3222813 r3227461 498 498 if ( isset( $config_constants['DB_HOST'] ) ) { 499 499 unset( $config_constants['DB_HOST'] ); 500 } 501 502 if ( isset( $config_constants['MYSQL_CLIENT_FLAGS'] ) ) { 503 unset( $config_constants['MYSQL_CLIENT_FLAGS'] ); 500 504 } 501 505 -
instawp-connect/trunk/includes/functions-pull-push.php
r3216309 r3227461 156 156 } 157 157 158 foreach ( $array as $item ) {159 if ( str_contains( $string, $item ) ) {160 return true;161 }162 }158 // foreach ( $array as $item ) { 159 // if ( str_contains( $string, $item ) ) { 160 // return true; 161 // } 162 // } 163 163 164 164 return false; -
instawp-connect/trunk/instawp-connect.php
r3223388 r3227461 8 8 * Plugin Name: InstaWP Connect 9 9 * Description: 1-click WordPress plugin for Staging, Migrations, Management, Sync and Companion plugin for InstaWP. 10 * Version: 0.1.0.7 810 * Version: 0.1.0.79 11 11 * Author: InstaWP Team 12 12 * Author URI: https://instawp.com/ … … 28 28 global $wpdb; 29 29 30 defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.7 8' );30 defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.79' ); 31 31 defined( 'INSTAWP_API_DOMAIN_PROD' ) || define( 'INSTAWP_API_DOMAIN_PROD', 'https://app.instawp.io' ); 32 32 … … 155 155 156 156 run_instawp(); 157 158 159 /** 160 * Custom Functions Started 161 */ 162 if ( ! function_exists( 'iwp_is_serialized' ) ) { 163 function iwp_is_serialized( $data, $strict = true ) { 164 // If it isn't a string, it isn't serialized. 165 if ( ! is_string( $data ) ) { 166 return false; 167 } 168 $data = trim( $data ); 169 if ( 'N;' === $data ) { 170 return true; 171 } 172 if ( strlen( $data ) < 4 ) { 173 return false; 174 } 175 if ( ':' !== $data[1] ) { 176 return false; 177 } 178 if ( $strict ) { 179 $lastc = substr( $data, - 1 ); 180 if ( ';' !== $lastc && '}' !== $lastc ) { 181 return false; 182 } 183 } else { 184 $semicolon = strpos( $data, ';' ); 185 $brace = strpos( $data, '}' ); 186 // Either ; or } must exist. 187 if ( false === $semicolon && false === $brace ) { 188 return false; 189 } 190 // But neither must be in the first X characters. 191 if ( false !== $semicolon && $semicolon < 3 ) { 192 return false; 193 } 194 if ( false !== $brace && $brace < 4 ) { 195 return false; 196 } 197 } 198 $token = $data[0]; 199 switch ( $token ) { 200 case 's': 201 if ( $strict ) { 202 if ( '"' !== substr( $data, - 2, 1 ) ) { 203 return false; 204 } 205 } elseif ( ! str_contains( $data, '"' ) ) { 206 return false; 207 } 208 // Or else fall through. 209 case 'a': 210 case 'O': 211 case 'E': 212 return (bool) preg_match( "/^{$token}:[0-9]+:/s", $data ); 213 case 'b': 214 case 'i': 215 case 'd': 216 $end = $strict ? '$' : ''; 217 218 return (bool) preg_match( "/^{$token}:[0-9.E+-]+;$end/", $data ); 219 } 220 221 return false; 222 } 223 } 224 225 if ( ! function_exists( 'iwp_maybe_serialize' ) ) { 226 function iwp_maybe_serialize( $data ) { 227 228 if ( is_array( $data ) || is_object( $data ) ) { 229 return serialize( $data ); 230 } 231 232 if ( iwp_is_serialized( $data, false ) ) { 233 return serialize( $data ); 234 } 235 236 return $data; 237 } 238 } 239 240 241 function iwp_recursive_unserialize_replace( $data, $search_replace ) { 242 243 if ( is_string( $data ) ) { 244 return str_replace( array_keys( $search_replace ), array_values( $search_replace ), $data ); 245 } 246 247 if ( is_array( $data ) ) { 248 $data = array_map( function ( $item ) use ( $search_replace ) { 249 return iwp_recursive_unserialize_replace( $item, $search_replace ); 250 }, $data ); 251 } elseif ( is_object( $data ) ) { 252 // Check if the object is __PHP_Incomplete_Class 253 if ( $data instanceof __PHP_Incomplete_Class ) { 254 255 $className = get_class( $data ); 256 257 // iwp_send_migration_log( 'Incomplete Class Warning', "Encountered incomplete class: $className. Make sure this class is loaded before unserialization.", [ 'class' => $className ] ); 258 259 return $data; 260 } 261 262 $properties = []; 263 264 try { 265 $reflection = new ReflectionObject( $data ); 266 $properties = $reflection->getProperties(); 267 } catch ( Exception $e ) { 268 // iwp_send_migration_log( 269 // 'Reflection Error', 270 // "Failed to reflect object of class " . get_class( $data ), 271 // [ 'error' => $e->getMessage() ] 272 // ); 273 274 return $data; 275 } 276 277 echo "<pre>"; print_r( $properties ); echo "</pre>"; 278 279 // foreach ( $properties as $property ) { 280 // try { 281 // $property->setAccessible( true ); 282 // $value = $property->getValue( $data ); 283 // $new_value = iwp_recursive_unserialize_replace( $value, $search_replace ); 284 // $property->setValue( $data, $new_value ); 285 // } catch ( Exception $e ) { 286 // // Skip this property if we can't access it 287 // continue; 288 // } 289 // } 290 } 291 292 return $data; 293 } 294 295 if ( ! function_exists( 'iwp_maybe_unserialize' ) ) { 296 function iwp_maybe_unserialize( $data ) { 297 if ( iwp_is_serialized( $data ) ) { 298 global $search_replace; 299 300 $data = @unserialize( trim( $data ) ); 301 302 if ( is_array( $data ) ) { 303 $data = iwp_recursive_unserialize_replace( $data, $search_replace ); 304 } 305 } 306 307 return $data; 308 } 309 } 310 311 if ( ! function_exists( 'iwp_array_filter_recursive' ) ) { 312 function iwp_array_filter_recursive( array $array, callable $callback = null ) { 313 $array = is_callable( $callback ) ? array_filter( $array, $callback ) : array_filter( $array ); 314 foreach ( $array as &$value ) { 315 if ( is_array( $value ) ) { 316 $value = call_user_func( __FUNCTION__, $value, $callback ); 317 } 318 } 319 320 return $array; 321 } 322 } 323 /** 324 * Custom Functions End 325 */ 326 327 add_action( 'wp_head', function () { 328 if ( isset( $_GET['debug'] ) ) { 329 330 global $mysqli, $search_replace; 331 332 $db_host = 'localhost'; 333 $db_username = 'xifafugelu2996_fogipixuwo5351'; 334 $db_password = '6DLeQM9Aj12sf8VxGvXI'; 335 $db_name = 'xifafugelu2996_9NCiSZ5Dcbl8LQk1Ustq'; 336 $mysqli = new mysqli( $db_host, $db_username, $db_password, $db_name ); 337 $mysqli->set_charset( 'utf8' ); 338 339 $offset = isset( $_GET['offset'] ) ? (int) $_GET['offset'] : 839; 340 $tableName = isset( $_GET['table'] ) ? sanitize_text_field( $_GET['table'] ) : 'AXF_options'; 341 $query = "SELECT * FROM `$tableName` WHERE 1 LIMIT 3 OFFSET $offset"; 342 $result = $mysqli->query( $query ); 343 344 $source_domain = 'astonished-sandpiper-aab1df.instawp.xyz'; 345 $dest_domain = 'roomier-mallard-5683f5.instawp.xyz'; 346 $search_replace = [ 347 '//' . $source_domain => '//' . $dest_domain, 348 '\/\/' . $source_domain => '\/\/' . $dest_domain, 349 ]; 350 351 if ( $mysqli->errno ) { 352 echo "<pre>"; 353 print_r( $mysqli->connect_error ); 354 echo "</pre>"; 355 356 return; 357 } 358 359 while ( $dataRow = $result->fetch_assoc() ) { 360 $columns = array_map( function ( $value ) { 361 global $mysqli; 362 363 if ( empty( $value ) ) { 364 return is_array( $value ) ? [] : ''; 365 } 366 367 return $mysqli->real_escape_string( $value ); 368 }, array_keys( $dataRow ) ); 369 370 $values = array_map( function ( $value ) { 371 global $mysqli; 372 373 if ( is_numeric( $value ) ) { 374 // If $value has leading zero it will mark as string and bypass returning as numeric 375 if ( substr( $value, 0, 1 ) !== '0' ) { 376 return $value; 377 } 378 } else if ( is_null( $value ) ) { 379 return "NULL"; 380 } else if ( is_array( $value ) && empty( $value ) ) { 381 $value = []; 382 } else if ( is_string( $value ) ) { 383 if ( iwp_is_serialized( $value ) ) { 384 $value = iwp_maybe_unserialize( $value ); 385 $value = iwp_maybe_serialize( $value ); 386 } 387 $value = $mysqli->real_escape_string( $value ); 388 } 389 390 return "'" . $value . "'"; 391 }, array_values( $dataRow ) ); 392 393 $sql_query = "INSERT IGNORE INTO `$tableName` (`" . implode( "`, `", $columns ) . "`) VALUES (" . implode( ", ", $values ) . ");"; 394 395 echo "<pre>"; 396 print_r( $sql_query ); 397 echo "</pre>"; 398 } 399 400 die(); 401 } 402 }, 0 ); 403 -
instawp-connect/trunk/languages/instawp-connect.pot
r3220103 r3227461 6 6 "Content-Type: text/plain; charset=UTF-8\n" 7 7 "Content-Transfer-Encoding: 8bit\n" 8 "POT-Creation-Date: 2025-01- 09 09:06+0000\n"8 "POT-Creation-Date: 2025-01-23 12:44+0000\n" 9 9 "X-Poedit-Basepath: ..\n" 10 10 "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n" … … 90 90 msgstr "" 91 91 92 #: includes/apis/class-instawp-rest-api.php:15 192 #: includes/apis/class-instawp-rest-api.php:152 93 93 msgid "This request is not authorized." 94 94 msgstr "" 95 95 96 #: includes/apis/class-instawp-rest-api.php:15 896 #: includes/apis/class-instawp-rest-api.php:159 97 97 msgid "API key and JWT token is required." 98 98 msgstr "" 99 99 100 #: includes/apis/class-instawp-rest-api.php:17 2100 #: includes/apis/class-instawp-rest-api.php:173 101 101 msgid "No user found with the provided username." 102 102 msgstr "" 103 103 104 #: includes/apis/class-instawp-rest-api.php:18 0104 #: includes/apis/class-instawp-rest-api.php:181 105 105 msgid "This user does not have capability to config the website." 106 106 msgstr "" 107 107 108 #: includes/apis/class-instawp-rest-api.php: 199108 #: includes/apis/class-instawp-rest-api.php:200 109 109 msgid "Application password does not match." 110 110 msgstr "" 111 111 112 #: includes/apis/class-instawp-rest-api.php:22 1112 #: includes/apis/class-instawp-rest-api.php:222 113 113 msgid "This website is already connected!" 114 114 msgstr "" 115 115 116 #: includes/apis/class-instawp-rest-api.php:24 1116 #: includes/apis/class-instawp-rest-api.php:242 117 117 msgid "Invalid API domain parameter passed." 118 118 msgstr "" 119 119 120 #: includes/apis/class-instawp-rest-api.php:25 5120 #: includes/apis/class-instawp-rest-api.php:256 121 121 msgid "API Key is not valid." 122 122 msgstr "" 123 123 124 #: includes/apis/class-instawp-rest-api.php:26 2124 #: includes/apis/class-instawp-rest-api.php:263 125 125 msgid "Something went wrong during connecting to InstaWP." 126 126 msgstr "" 127 127 128 #: includes/apis/class-instawp-rest-api.php:2 69128 #: includes/apis/class-instawp-rest-api.php:270 129 129 msgid "Connected." 130 130 msgstr "" 131 131 132 #: includes/apis/class-instawp-rest-api.php:2 89132 #: includes/apis/class-instawp-rest-api.php:290 133 133 msgid "This site is not currently marked as staging" 134 134 msgstr "" 135 135 136 #: includes/apis/class-instawp-rest-api.php:29 7136 #: includes/apis/class-instawp-rest-api.php:298 137 137 msgid "Invalid parent connect ID" 138 138 msgstr "" 139 139 140 #: includes/apis/class-instawp-rest-api.php:30 5140 #: includes/apis/class-instawp-rest-api.php:306 141 141 msgid "Parent connect ID does not match" 142 142 msgstr "" 143 143 144 #: includes/apis/class-instawp-rest-api.php:31 7144 #: includes/apis/class-instawp-rest-api.php:318 145 145 msgid "Site has been marked as parent" 146 146 msgstr "" 147 147 148 #: includes/apis/class-instawp-rest-api.php:33 8148 #: includes/apis/class-instawp-rest-api.php:339 149 149 msgid "Invalid connect ID" 150 150 msgstr "" 151 151 152 #: includes/apis/class-instawp-rest-api.php:3 49152 #: includes/apis/class-instawp-rest-api.php:350 153 153 msgid "Site has been marked as staging" 154 154 msgstr "" 155 155 156 #: includes/apis/class-instawp-rest-api.php:37 0156 #: includes/apis/class-instawp-rest-api.php:371 157 157 msgid "Staging Site List Refreshed." 158 158 msgstr "" 159 159 160 #: includes/apis/class-instawp-rest-api.php:39 2160 #: includes/apis/class-instawp-rest-api.php:393 161 161 msgid "Plugin reset Successful." 162 162 msgstr "" 163 163 164 #: includes/apis/class-instawp-rest-api.php:46 2164 #: includes/apis/class-instawp-rest-api.php:463 165 165 msgid "Activity log is enabled." 166 166 msgstr "" 167 167 168 #: includes/apis/class-instawp-rest-api.php:46 2168 #: includes/apis/class-instawp-rest-api.php:463 169 169 msgid "Activity log is disabled." 170 170 msgstr "" 171 171 172 #: includes/apis/class-instawp-rest-api.php:48 4, includes/functions.php:778172 #: includes/apis/class-instawp-rest-api.php:485, includes/functions.php:778 173 173 msgid "No login information found." 174 174 msgstr "" 175 175 176 #: includes/apis/class-instawp-rest-api.php:54 4176 #: includes/apis/class-instawp-rest-api.php:545 177 177 msgid "All Temporary logins are removed." 178 178 msgstr "" 179 179 180 #: includes/apis/class-instawp-rest-api.php:60 5180 #: includes/apis/class-instawp-rest-api.php:606 181 181 msgid "No items found" 182 182 msgstr "" 183 183 184 #: includes/apis/class-instawp-rest-api.php:61 4184 #: includes/apis/class-instawp-rest-api.php:615 185 185 msgid "Update task create successfully" 186 186 msgstr "" 187 187 188 #: includes/apis/class-instawp-rest-api.php:67 5188 #: includes/apis/class-instawp-rest-api.php:676 189 189 msgid "Empty bearer token." 190 190 msgstr "" 191 191 192 #: includes/apis/class-instawp-rest-api.php:68 8192 #: includes/apis/class-instawp-rest-api.php:689 193 193 msgid "Empty api key." 194 194 msgstr "" 195 195 196 #: includes/apis/class-instawp-rest-api.php:70 3196 #: includes/apis/class-instawp-rest-api.php:704 197 197 msgid "Invalid bearer token." 198 198 msgstr "" 199 199 200 #: includes/apis/class-instawp-rest-api.php:84 0200 #: includes/apis/class-instawp-rest-api.php:841 201 201 msgid "Route not allowed" 202 202 msgstr "" 203 203 204 #: includes/apis/class-instawp-rest-api.php:94 3, includes/class-instawp-setting.php:583, includes/class-instawp-setting.php:589204 #: includes/apis/class-instawp-rest-api.php:944, includes/class-instawp-setting.php:583, includes/class-instawp-setting.php:589 205 205 msgid "Heartbeat" 206 206 msgstr "" 207 207 208 #: includes/apis/class-instawp-rest-api.php:94 4, includes/class-instawp-hooks.php:285, includes/class-instawp-setting.php:249, includes/class-instawp-setting.php:621208 #: includes/apis/class-instawp-rest-api.php:945, includes/class-instawp-hooks.php:285, includes/class-instawp-setting.php:249, includes/class-instawp-setting.php:621 209 209 msgid "Database Manager" 210 210 msgstr "" 211 211 212 #: includes/apis/class-instawp-rest-api.php:94 5, includes/class-instawp-setting.php:629212 #: includes/apis/class-instawp-rest-api.php:946, includes/class-instawp-setting.php:629 213 213 msgid "Install Plugin / Themes" 214 214 msgstr "" 215 215 216 #: includes/apis/class-instawp-rest-api.php:94 6, includes/class-instawp-setting.php:637216 #: includes/apis/class-instawp-rest-api.php:947, includes/class-instawp-setting.php:637 217 217 msgid "Update Core / Plugin / Themes" 218 218 msgstr "" 219 219 220 #: includes/apis/class-instawp-rest-api.php:94 7, includes/class-instawp-setting.php:645220 #: includes/apis/class-instawp-rest-api.php:948, includes/class-instawp-setting.php:645 221 221 msgid "Activate / Deactivate" 222 222 msgstr "" 223 223 224 #: includes/apis/class-instawp-rest-api.php:94 8, includes/class-instawp-setting.php:653224 #: includes/apis/class-instawp-rest-api.php:949, includes/class-instawp-setting.php:653 225 225 msgid "Config Management" 226 226 msgstr "" 227 227 228 #: includes/apis/class-instawp-rest-api.php:9 49, includes/class-instawp-setting.php:661228 #: includes/apis/class-instawp-rest-api.php:950, includes/class-instawp-setting.php:661 229 229 msgid "Site Inventory" 230 230 msgstr "" 231 231 232 #: includes/apis/class-instawp-rest-api.php:95 0, includes/class-instawp-setting.php:250, includes/class-instawp-setting.php:669232 #: includes/apis/class-instawp-rest-api.php:951, includes/class-instawp-setting.php:250, includes/class-instawp-setting.php:669 233 233 msgid "Debug Log" 234 234 msgstr "" … … 730 730 msgstr "" 731 731 732 #: includes/class-instawp-tools.php:70 1732 #: includes/class-instawp-tools.php:709 733 733 msgid "API key not found" 734 734 msgstr "" 735 735 736 #: includes/class-instawp-tools.php:9 26736 #: includes/class-instawp-tools.php:934 737 737 msgid "Root directory for this WordPress installation could not find." 738 738 msgstr "" 739 739 740 #: includes/class-instawp-tools.php:9 47740 #: includes/class-instawp-tools.php:955 741 741 msgid "Tracking database could not found." 742 742 msgstr "" 743 743 744 #: includes/class-instawp-tools.php:9 57744 #: includes/class-instawp-tools.php:965 745 745 msgid "API Signature and others data could not set properly" 746 746 msgstr "" 747 747 748 #: includes/class-instawp-tools.php:9 83748 #: includes/class-instawp-tools.php:991 749 749 msgid "InstaWP could not access or read required files from your WordPress directory due to file permission issue." 750 750 msgstr "" 751 751 752 #: includes/class-instawp-tools.php:9 85752 #: includes/class-instawp-tools.php:993 753 753 msgid "Learn more." 754 754 msgstr "" 755 755 756 #: includes/class-instawp-tools.php:1 193756 #: includes/class-instawp-tools.php:1201 757 757 msgid "Launch %s" 758 758 msgstr "" 759 759 760 #: includes/class-instawp-tools.php:128 1760 #: includes/class-instawp-tools.php:1289 761 761 msgid "Please create staging sites first." 762 762 msgstr "" 763 763 764 #: includes/class-instawp-tools.php:12 82764 #: includes/class-instawp-tools.php:1290 765 765 msgid "Skip" 766 766 msgstr "" 767 767 768 #: includes/class-instawp-tools.php:12 83768 #: includes/class-instawp-tools.php:1291 769 769 msgid "Do you really want to disconnect the plugin? It will completely remove the existing staging sites from the plugin." 770 770 msgstr "" 771 771 772 #: includes/class-instawp-tools.php:12 84772 #: includes/class-instawp-tools.php:1292 773 773 msgid "Do you still want to disconnect the plugin?" 774 774 msgstr "" 775 775 776 #: includes/class-instawp-tools.php:13 32776 #: includes/class-instawp-tools.php:1340 777 777 msgid "Zip archive is not opening." 778 778 msgstr "" 779 779 780 #: includes/class-instawp-tools.php:13 85780 #: includes/class-instawp-tools.php:1393 781 781 msgid "No compression method find." 782 782 msgstr "" 783 783 784 #: includes/class-instawp-tools.php:14 29784 #: includes/class-instawp-tools.php:1437 785 785 msgid "Site ID not found in site create response." 786 786 msgstr "" 787 787 788 #: includes/class-instawp-tools.php:14 68788 #: includes/class-instawp-tools.php:1476 789 789 msgid "SFTP login failed." 790 790 msgstr "" 791 791 792 #: includes/class-instawp-tools.php:14 79792 #: includes/class-instawp-tools.php:1487 793 793 msgid "SFTP upload failed for files." 794 794 msgstr "" 795 795 796 #: includes/class-instawp-tools.php:14 87796 #: includes/class-instawp-tools.php:1495 797 797 msgid "SFTP upload failed for database." 798 798 msgstr "" -
instawp-connect/trunk/readme.txt
r3223388 r3227461 5 5 Tested up to: 6.7 6 6 Requires PHP: 7.0 7 Stable tag: 0.1.0.7 87 Stable tag: 0.1.0.79 8 8 License: GPLv3 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-3.0.en.html … … 99 99 == Changelog == 100 100 101 = 0.1.0.79 - 23 January 2025 = 102 - FIX: Fixed default username for magic login. 103 - FIX: Added managed parameter to config API. 104 - FIX: Fixed cache clearing issue with WP Rocket. 105 - FIX: Push migration exclude files check. 106 101 107 = 0.1.0.78 - 16 January 2025 = 102 108 - NEW: Added extra log message for handling pull migration failure. -
instawp-connect/trunk/vendor/composer/InstalledVersions.php
r3216309 r3227461 32 32 */ 33 33 private static $installed; 34 35 /** 36 * @var bool 37 */ 38 private static $installedIsLocalDir; 34 39 35 40 /** … … 310 315 self::$installed = $data; 311 316 self::$installedByVendor = array(); 317 318 // when using reload, we disable the duplicate protection to ensure that self::$installed data is 319 // always returned, but we cannot know whether it comes from the installed.php in __DIR__ or not, 320 // so we have to assume it does not, and that may result in duplicate data being returned when listing 321 // all installed packages for example 322 self::$installedIsLocalDir = false; 312 323 } 313 324 … … 326 337 327 338 if (self::$canGetVendors) { 339 $selfDir = strtr(__DIR__, '\\', '/'); 328 340 foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { 341 $vendorDir = strtr($vendorDir, '\\', '/'); 329 342 if (isset(self::$installedByVendor[$vendorDir])) { 330 343 $installed[] = self::$installedByVendor[$vendorDir]; … … 334 347 self::$installedByVendor[$vendorDir] = $required; 335 348 $installed[] = $required; 336 if (s trtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {349 if (self::$installed === null && $vendorDir.'/composer' === $selfDir) { 337 350 self::$installed = $required; 338 $copiedLocalDir = true;351 self::$installedIsLocalDir = true; 339 352 } 353 } 354 if (self::$installedIsLocalDir && $vendorDir.'/composer' === $selfDir) { 355 $copiedLocalDir = true; 340 356 } 341 357 } -
instawp-connect/trunk/vendor/composer/installed.json
r3218292 r3227461 8 8 "type": "git", 9 9 "url": "https://github.com/InstaWP/connect-helpers.git", 10 "reference": " 4e5a060b35cdcc903ee2165e1cb5b2794437cf74"11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/InstaWP/connect-helpers/zipball/ 4e5a060b35cdcc903ee2165e1cb5b2794437cf74",15 "reference": " 4e5a060b35cdcc903ee2165e1cb5b2794437cf74",10 "reference": "2e60645a8e670973fba99dcbb9cecd8c9e3eefd1" 11 }, 12 "dist": { 13 "type": "zip", 14 "url": "https://api.github.com/repos/InstaWP/connect-helpers/zipball/2e60645a8e670973fba99dcbb9cecd8c9e3eefd1", 15 "reference": "2e60645a8e670973fba99dcbb9cecd8c9e3eefd1", 16 16 "shasum": "" 17 17 }, … … 20 20 "wp-cli/wp-config-transformer": "^1.3" 21 21 }, 22 "time": "2025-01- 02T11:30:59+00:00",22 "time": "2025-01-23T09:43:33+00:00", 23 23 "default-branch": true, 24 24 "type": "library", … … 48 48 "description": "CLI Package for InstaWP Remote Features", 49 49 "support": { 50 "source": "https://github.com/InstaWP/connect-helpers/tree/ main",50 "source": "https://github.com/InstaWP/connect-helpers/tree/1.0.1", 51 51 "issues": "https://github.com/InstaWP/connect-helpers/issues" 52 52 }, … … 291 291 { 292 292 "name": "woocommerce/action-scheduler", 293 "version": "3.9. 0",294 "version_normalized": "3.9. 0.0",293 "version": "3.9.1", 294 "version_normalized": "3.9.1.0", 295 295 "source": { 296 296 "type": "git", 297 297 "url": "https://github.com/woocommerce/action-scheduler.git", 298 "reference": " 90b98e6fe97d455679b1d288f050cad8f6f79771"299 }, 300 "dist": { 301 "type": "zip", 302 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/ 90b98e6fe97d455679b1d288f050cad8f6f79771",303 "reference": " 90b98e6fe97d455679b1d288f050cad8f6f79771",298 "reference": "d73b5f83cd42832fa137e03687bad3e312298d29" 299 }, 300 "dist": { 301 "type": "zip", 302 "url": "https://api.github.com/repos/woocommerce/action-scheduler/zipball/d73b5f83cd42832fa137e03687bad3e312298d29", 303 "reference": "d73b5f83cd42832fa137e03687bad3e312298d29", 304 304 "shasum": "" 305 305 }, … … 313 313 "yoast/phpunit-polyfills": "^2.0" 314 314 }, 315 "time": "202 4-11-15T00:11:39+00:00",315 "time": "2025-01-21T11:39:08+00:00", 316 316 "type": "wordpress-plugin", 317 317 "extra": { … … 331 331 "support": { 332 332 "issues": "https://github.com/woocommerce/action-scheduler/issues", 333 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9. 0"333 "source": "https://github.com/woocommerce/action-scheduler/tree/3.9.1" 334 334 }, 335 335 "install-path": "../woocommerce/action-scheduler" -
instawp-connect/trunk/vendor/composer/installed.php
r3218292 r3227461 4 4 'pretty_version' => 'dev-main', 5 5 'version' => 'dev-main', 6 'reference' => '5 e2939ad37db1d19f4609420ae51403a96362415',6 'reference' => '5419ef006247c7db8093cc35d038fc2b0e25fb7a', 7 7 'type' => 'wordpress-plugin', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-main', 15 15 'version' => 'dev-main', 16 'reference' => '5 e2939ad37db1d19f4609420ae51403a96362415',16 'reference' => '5419ef006247c7db8093cc35d038fc2b0e25fb7a', 17 17 'type' => 'wordpress-plugin', 18 18 'install_path' => __DIR__ . '/../../', … … 23 23 'pretty_version' => 'dev-main', 24 24 'version' => 'dev-main', 25 'reference' => ' 4e5a060b35cdcc903ee2165e1cb5b2794437cf74',25 'reference' => '2e60645a8e670973fba99dcbb9cecd8c9e3eefd1', 26 26 'type' => 'library', 27 27 'install_path' => __DIR__ . '/../instawp/connect-helpers', … … 59 59 ), 60 60 'woocommerce/action-scheduler' => array( 61 'pretty_version' => '3.9. 0',62 'version' => '3.9. 0.0',63 'reference' => ' 90b98e6fe97d455679b1d288f050cad8f6f79771',61 'pretty_version' => '3.9.1', 62 'version' => '3.9.1.0', 63 'reference' => 'd73b5f83cd42832fa137e03687bad3e312298d29', 64 64 'type' => 'wordpress-plugin', 65 65 'install_path' => __DIR__ . '/../woocommerce/action-scheduler', -
instawp-connect/trunk/vendor/instawp/connect-helpers/connect-helpers.php
r2957903 r3227461 4 4 * 5 5 * @package InstaWP\Connect\Helpers 6 * @copyright Copyright (C) 202 3, InstaWP7 * @link http ://instawp.com6 * @copyright Copyright (C) 2025, InstaWP 7 * @link https://instawp.com 8 8 * @since 1.0.0 9 9 * 10 10 * @wordpress-plugin 11 11 * Plugin Name: InstaWP Connect Helpers 12 * Version: 1.0. 012 * Version: 1.0.1 13 13 * Plugin URI: https://instawp.com 14 14 * Description: Helpers Package for InstaWP Remote Features. … … 18 18 * License URI: http://www.gnu.org/licenses/gpl-2.0.txt 19 19 * Requires at least: 5.6 20 * Tested up to: 6. 320 * Tested up to: 6.7 21 21 */ 22 22 -
instawp-connect/trunk/vendor/instawp/connect-helpers/src/Cache.php
r3147089 r3227461 43 43 // WP Rocket. 44 44 if ( is_plugin_active( 'wp-rocket/wp-rocket.php' ) ) { 45 $message = ''; 46 47 if ( function_exists( 'rocket_clean_minify' ) && function_exists( 'rocket_clean_domain' ) ) { 48 rocket_clean_minify(); 49 rocket_clean_domain(); 50 } else { 51 $message = 'Function not exists.'; 52 } 45 $functions = [ 46 'rocket_clean_minify', 47 'rocket_clean_domain', 48 'rocket_clean_cache_busting', 49 [ 'rocket_dismiss_box', 'rocket_warning_plugin_modification' ], 50 [ 'rocket_renew_box', 'preload_notice' ] 51 ]; 52 53 $executed = array_reduce( $functions, function( $count, $item ) { 54 if ( is_array( $item ) ) { 55 $func = $item[0]; 56 $arg = $item[1]; 57 if ( function_exists( $func ) ) { 58 $func( $arg ); 59 return $count + 1; 60 } 61 } elseif ( function_exists( $item )) { 62 $item(); 63 return $count + 1; 64 } 65 return $count; 66 }, 0 ); 53 67 54 68 $results[] = [ 55 69 'slug' => 'wp-rocket', 56 70 'name' => 'WP Rocket', 57 'message' => $ message71 'message' => $executed === 0 ? 'Function not exists.' : '' 58 72 ]; 59 73 } -
instawp-connect/trunk/vendor/instawp/connect-helpers/src/Helper.php
r3218292 r3227461 181 181 182 182 public static function get_admin_username() { 183 if ( current_user_can( 'manage_options' ) ) { 184 $current_user = wp_get_current_user(); 185 186 if ( ! empty( $current_user ) ) { 187 return $current_user->user_login; 188 } 189 } 190 183 191 $username = ''; 184 192 -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/action-scheduler.php
r3194914 r3227461 6 6 * Author: Automattic 7 7 * Author URI: https://automattic.com/ 8 * Version: 3.9. 08 * Version: 3.9.1 9 9 * License: GPLv3 10 10 * Requires at least: 6.5 11 * Tested up to: 6. 711 * Tested up to: 6.5 12 12 * Requires PHP: 7.1 13 13 * … … 30 30 */ 31 31 32 if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_ 0' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION.32 if ( ! function_exists( 'action_scheduler_register_3_dot_9_dot_1' ) && function_exists( 'add_action' ) ) { // WRCS: DEFINED_VERSION. 33 33 34 34 if ( ! class_exists( 'ActionScheduler_Versions', false ) ) { … … 37 37 } 38 38 39 add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_ 0', 0, 0 ); // WRCS: DEFINED_VERSION.39 add_action( 'plugins_loaded', 'action_scheduler_register_3_dot_9_dot_1', 0, 0 ); // WRCS: DEFINED_VERSION. 40 40 41 41 // phpcs:disable Generic.Functions.OpeningFunctionBraceKernighanRitchie.ContentAfterBrace … … 43 43 * Registers this version of Action Scheduler. 44 44 */ 45 function action_scheduler_register_3_dot_9_dot_ 0() { // WRCS: DEFINED_VERSION.45 function action_scheduler_register_3_dot_9_dot_1() { // WRCS: DEFINED_VERSION. 46 46 $versions = ActionScheduler_Versions::instance(); 47 $versions->register( '3.9. 0', 'action_scheduler_initialize_3_dot_9_dot_0' ); // WRCS: DEFINED_VERSION.47 $versions->register( '3.9.1', 'action_scheduler_initialize_3_dot_9_dot_1' ); // WRCS: DEFINED_VERSION. 48 48 } 49 49 … … 52 52 * Initializes this version of Action Scheduler. 53 53 */ 54 function action_scheduler_initialize_3_dot_9_dot_ 0() { // WRCS: DEFINED_VERSION.54 function action_scheduler_initialize_3_dot_9_dot_1() { // WRCS: DEFINED_VERSION. 55 55 // A final safety check is required even here, because historic versions of Action Scheduler 56 56 // followed a different pattern (in some unusual cases, we could reach this point and the … … 64 64 // Support usage in themes - load this version if no plugin has loaded a version yet. 65 65 if ( did_action( 'plugins_loaded' ) && ! doing_action( 'plugins_loaded' ) && ! class_exists( 'ActionScheduler', false ) ) { 66 action_scheduler_initialize_3_dot_9_dot_ 0(); // WRCS: DEFINED_VERSION.66 action_scheduler_initialize_3_dot_9_dot_1(); // WRCS: DEFINED_VERSION. 67 67 do_action( 'action_scheduler_pre_theme_init' ); 68 68 ActionScheduler_Versions::initialize_latest_version(); -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/changelog.txt
r3194914 r3227461 1 1 *** Changelog *** 2 3 = 3.9.1 - 2025-01-21 = 4 * A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts. 5 * New wp action-scheduler source command to help determine how Action Scheduler is being loaded. 6 * Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer. 7 * Make some other nullable parameters explicitly nullable. 8 * Set option value to `no` rather than deleting. 2 9 3 10 = 3.9.0 - 2024-11-14 = -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_ActionFactory.php
r3194914 r3227461 9 9 * Return stored actions for given params. 10 10 * 11 * @param string $status The action's status in the data store.12 * @param string $hook The hook to trigger when this action runs.13 * @param array $args Args to pass to callbacks when the hook is triggered.14 * @param ActionScheduler_Schedule $schedule The action's schedule.15 * @param string $group A group to put the action in.11 * @param string $status The action's status in the data store. 12 * @param string $hook The hook to trigger when this action runs. 13 * @param array $args Args to pass to callbacks when the hook is triggered. 14 * @param ActionScheduler_Schedule|null $schedule The action's schedule. 15 * @param string $group A group to put the action in. 16 16 * phpcs:ignore Squiz.Commenting.FunctionComment.ExtraParamComment 17 * @param int $priority The action priority.17 * @param int $priority The action priority. 18 18 * 19 19 * @return ActionScheduler_Action An instance of the stored action. 20 20 */ 21 public function get_stored_action( $status, $hook, array $args = array(), ActionScheduler_Schedule $schedule = null, $group = '' ) {21 public function get_stored_action( $status, $hook, array $args = array(), ?ActionScheduler_Schedule $schedule = null, $group = '' ) { 22 22 // The 6th parameter ($priority) is not formally declared in the method signature to maintain compatibility with 23 23 // third-party subclasses created before this param was added. -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_AdminView.php
r3194914 r3227461 251 251 } 252 252 253 $as_version = ActionScheduler_Versions::instance()->latest_version(); 253 $as_version = ActionScheduler_Versions::instance()->latest_version(); 254 $as_source = ActionScheduler_Versions::instance()->active_source(); 255 $as_source_path = ActionScheduler_Versions::instance()->active_source_path(); 256 $as_source_markup = sprintf( '<code>%s</code>', esc_html( $as_source_path ) ); 257 258 if ( ! empty( $as_source ) ) { 259 $as_source_markup = sprintf( 260 '%s: <abbr title="%s">%s</abbr>', 261 ucfirst( $as_source['type'] ), 262 esc_attr( $as_source_path ), 263 esc_html( $as_source['name'] ) 264 ); 265 } 266 254 267 $screen->add_help_tab( 255 268 array( … … 261 274 '<p>' . 262 275 __( 'Action Scheduler is a scalable, traceable job queue for background processing large sets of actions. Action Scheduler works by triggering an action hook to run at some time in the future. Scheduled actions can also be scheduled to run on a recurring schedule.', 'action-scheduler' ) . 276 '</p>' . 277 '<h3>' . esc_html__( 'Source', 'action-scheduler' ) . '</h3>' . 278 '<p>' . 279 esc_html__( 'Action Scheduler is currently being loaded from the following location. This can be useful when debugging, or if requested by the support team.', 'action-scheduler' ) . 280 '</p>' . 281 '<p>' . $as_source_markup . '</p>' . 282 '<h3>' . esc_html__( 'WP CLI', 'action-scheduler' ) . '</h3>' . 283 '<p>' . 284 sprintf( 285 /* translators: %1$s is WP CLI command (not translatable) */ 286 esc_html__( 'WP CLI commands are available: execute %1$s for a list of available commands.', 'action-scheduler' ), 287 '<code>wp help action-scheduler</code>' 288 ) . 263 289 '</p>', 264 290 ) -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_Versions.php
r3194914 r3227461 20 20 21 21 /** 22 * Registered sources. 23 * 24 * @var array<string, string> 25 */ 26 private $sources = array(); 27 28 /** 22 29 * Register version's callback. 23 30 * … … 29 36 return false; 30 37 } 38 39 // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace 40 $backtrace = debug_backtrace( DEBUG_BACKTRACE_IGNORE_ARGS ); 41 $source = $backtrace[0]['file']; 42 31 43 $this->versions[ $version_string ] = $initialization_callback; 44 $this->sources[ $source ] = $version_string; 32 45 return true; 33 46 } … … 38 51 public function get_versions() { 39 52 return $this->versions; 53 } 54 55 /** 56 * Get registered sources. 57 * 58 * @return array<string, string> 59 */ 60 public function get_sources() { 61 return $this->sources; 40 62 } 41 63 … … 87 109 call_user_func( $self->latest_version_callback() ); 88 110 } 111 112 /** 113 * Returns information about the plugin or theme which contains the current active version 114 * of Action Scheduler. 115 * 116 * If this cannot be determined, or if Action Scheduler is being loaded via some other 117 * method, then it will return an empty array. Otherwise, if populated, the array will 118 * look like the following: 119 * 120 * [ 121 * 'type' => 'plugin', # or 'theme' 122 * 'name' => 'Name', 123 * ] 124 * 125 * @return array 126 */ 127 public function active_source(): array { 128 $file = __FILE__; 129 $dir = __DIR__; 130 $plugins = get_plugins(); 131 $plugin_files = array_keys( $plugins ); 132 133 foreach ( $plugin_files as $plugin_file ) { 134 $plugin_path = trailingslashit( WP_PLUGIN_DIR ) . dirname( $plugin_file ); 135 $plugin_file = trailingslashit( WP_PLUGIN_DIR ) . $plugin_file; 136 137 if ( 0 !== strpos( dirname( $dir ), $plugin_path ) ) { 138 continue; 139 } 140 141 $plugin_data = get_plugin_data( $plugin_file ); 142 143 if ( ! is_array( $plugin_data ) || empty( $plugin_data['Name'] ) ) { 144 continue; 145 } 146 147 return array( 148 'type' => 'plugin', 149 'name' => $plugin_data['Name'], 150 ); 151 } 152 153 $themes = (array) search_theme_directories(); 154 155 foreach ( $themes as $slug => $data ) { 156 $needle = trailingslashit( $data['theme_root'] ) . $slug . '/'; 157 158 if ( 0 !== strpos( $file, $needle ) ) { 159 continue; 160 } 161 162 $theme = wp_get_theme( $slug ); 163 164 if ( ! is_object( $theme ) || ! is_a( $theme, \WP_Theme::class ) ) { 165 continue; 166 } 167 168 return array( 169 'type' => 'theme', 170 // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase 171 'name' => $theme->Name, 172 ); 173 } 174 175 return array(); 176 } 177 178 /** 179 * Returns the directory path for the currently active installation of Action Scheduler. 180 * 181 * @return string 182 */ 183 public function active_source_path(): string { 184 return trailingslashit( dirname( __DIR__ ) ); 185 } 89 186 } -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/classes/ActionScheduler_WPCommentCleaner.php
r3194914 r3227461 67 67 */ 68 68 public static function maybe_schedule_cleanup() { 69 $has_logs = 'no'; 70 69 71 $args = array( 70 72 'type' => ActionScheduler_wpCommentLogger::TYPE, … … 74 76 75 77 if ( (bool) get_comments( $args ) ) { 76 update_option( self::$has_logs_option_key, 'yes' );78 $has_logs = 'yes'; 77 79 78 80 if ( ! as_next_scheduled_action( self::$cleanup_hook ) ) { … … 80 82 } 81 83 } 84 85 update_option( self::$has_logs_option_key, $has_logs, true ); 82 86 } 83 87 … … 96 100 ); 97 101 98 delete_option( self::$has_logs_option_key);102 update_option( self::$has_logs_option_key, 'no', true ); 99 103 } 100 104 -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler.php
r3194914 r3227461 241 241 WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Scheduler_command' ); 242 242 WP_CLI::add_command( 'action-scheduler', 'ActionScheduler_WPCLI_Clean_Command' ); 243 WP_CLI::add_command( 'action-scheduler action', '\Action_Scheduler\WP_CLI\Action_Command' ); 244 WP_CLI::add_command( 'action-scheduler', '\Action_Scheduler\WP_CLI\System_Command' ); 243 245 if ( ! ActionScheduler_DataController::is_migration_complete() && Controller::instance()->allow_migration() ) { 244 246 $command = new Migration_Command(); … … 297 299 'ActionScheduler_Store' => true, 298 300 'ActionScheduler_TimezoneHelper' => true, 301 'ActionScheduler_WPCLI_Command' => true, 299 302 ); 300 303 … … 341 344 protected static function is_class_cli( $class ) { 342 345 static $cli_segments = array( 343 'QueueRunner' => true, 344 'Command' => true, 345 'ProgressBar' => true, 346 'QueueRunner' => true, 347 'Command' => true, 348 'ProgressBar' => true, 349 '\Action_Scheduler\WP_CLI\Action_Command' => true, 350 '\Action_Scheduler\WP_CLI\System_Command' => true, 346 351 ); 347 352 -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/deprecated/ActionScheduler_Schedule_Deprecated.php
r3051765 r3227461 14 14 * @return DateTime|null 15 15 */ 16 public function next( DateTime $after = null ) {16 public function next( ?DateTime $after = null ) { 17 17 if ( empty( $after ) ) { 18 18 $return_value = $this->get_date(); -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/lib/cron-expression/CronExpression.php
r3051765 r3227461 55 55 * @return CronExpression 56 56 */ 57 public static function factory($expression, CronExpression_FieldFactory $fieldFactory = null)57 public static function factory($expression, ?CronExpression_FieldFactory $fieldFactory = null) 58 58 { 59 59 $mappings = array( -
instawp-connect/trunk/vendor/woocommerce/action-scheduler/readme.txt
r3194914 r3227461 2 2 Contributors: Automattic, wpmuguru, claudiosanches, peterfabian1000, vedjain, jamosova, obliviousharmony, konamiman, sadowski, royho, barryhughes-1 3 3 Tags: scheduler, cron 4 Stable tag: 3.9. 04 Stable tag: 3.9.1 5 5 License: GPLv3 6 6 Requires at least: 6.5 7 Tested up to: 6. 77 Tested up to: 6.5 8 8 Requires PHP: 7.1 9 9 … … 47 47 48 48 == Changelog == 49 50 = 3.9.1 - 2025-01-21 = 51 * A number of new WP CLI commands have been added, making it easier to manage actions in the terminal and from scripts. 52 * New wp action-scheduler source command to help determine how Action Scheduler is being loaded. 53 * Additional information about the active instance of Action Scheduler is now available in the Help pull-down drawer. 54 * Make some other nullable parameters explicitly nullable. 55 * Set option value to `no` rather than deleting. 49 56 50 57 = 3.9.0 - 2024-11-14 =
Note: See TracChangeset
for help on using the changeset viewer.