PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 6.3.7
Jetpack – WP Security, Backup, Speed, & Growth v6.3.7
16.2-beta 12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 All 501 releases
jetpack / sync / class.jetpack-sync-module-import.php
class.jetpack-sync-module-import.php
87 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class Jetpack_Sync_Module_Import extends Jetpack_Sync_Module {
4
5 private $import_end = false;
6
7 public function name() {
8 return 'import';
9 }
10
11 public function init_listeners( $callable ) {
12 add_action( 'export_wp', $callable );
13 add_action( 'jetpack_sync_import_end', $callable, 10, 2 );
14
15 // Movable type, RSS, Livejournal
16 add_action( 'import_done', array( $this, 'sync_import_done' ) );
17
18 // WordPress, Blogger, Livejournal, woo tax rate
19 add_action( 'import_end', array( $this, 'sync_import_end' ) );
20 }
21
22 public function set_defaults() {
23 $this->import_end = false;
24 }
25
26 public function sync_import_done( $importer ) {
27 // We already ran an send the import
28 if ( $this->import_end ) {
29 return;
30 }
31
32 $importer_name = $this->get_importer_name( $importer );
33
34 /**
35 * Sync Event that tells that the import is finished
36 *
37 * @since 5.0.0
38 *
39 * $param string $importer
40 */
41 do_action( 'jetpack_sync_import_end', $importer, $importer_name );
42 $this->import_end = true;
43 }
44
45 public function sync_import_end() {
46 // We already ran an send the import
47 if ( $this->import_end ) {
48 return;
49 }
50
51 $this->import_end = true;
52 $importer = 'unknown';
53 $backtrace = wp_debug_backtrace_summary( null, 0, false );
54 if ( $this->is_importer( $backtrace, 'Blogger_Importer' ) ) {
55 $importer = 'blogger';
56 }
57
58 if ( 'unknown' === $importer && $this->is_importer( $backtrace, 'WC_Tax_Rate_Importer' ) ) {
59 $importer = 'woo-tax-rate';
60 }
61
62 if ( 'unknown' === $importer && $this->is_importer( $backtrace, 'WP_Import' ) ) {
63 $importer = 'wordpress';
64 }
65
66 $importer_name = $this->get_importer_name( $importer );
67
68 /** This filter is already documented in sync/class.jetpack-sync-module-posts.php */
69 do_action( 'jetpack_sync_import_end', $importer, $importer_name );
70 }
71
72 private function get_importer_name( $importer ) {
73 $importers = get_importers();
74 return isset( $importers[ $importer ] ) ? $importers[ $importer ][0] : 'Unknown Importer';
75 }
76
77 private function is_importer( $backtrace, $class_name ) {
78 foreach ( $backtrace as $trace ) {
79 if ( strpos( $trace, $class_name ) !== false ) {
80 return true;
81 }
82 }
83
84 return false;
85 }
86 }
87