PluginProbe
Jetpack – WP Security, Backup, Speed, & Growth / 7.2
Jetpack – WP Security, Backup, Speed, & Growth v7.2
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 in Jetpack – WP Security, Backup, Speed, & Growth 7.2, at sync/class.jetpack-sync-module-import.php

88 lines 2.2 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 // phpcs:ignore WordPress.WP.CapitalPDangit
64 $importer = 'wordpress';
65 }
66
67 $importer_name = $this->get_importer_name( $importer );
68
69 /** This filter is already documented in sync/class.jetpack-sync-module-posts.php */
70 do_action( 'jetpack_sync_import_end', $importer, $importer_name );
71 }
72
73 private function get_importer_name( $importer ) {
74 $importers = get_importers();
75 return isset( $importers[ $importer ] ) ? $importers[ $importer ][0] : 'Unknown Importer';
76 }
77
78 private function is_importer( $backtrace, $class_name ) {
79 foreach ( $backtrace as $trace ) {
80 if ( strpos( $trace, $class_name ) !== false ) {
81 return true;
82 }
83 }
84
85 return false;
86 }
87 }
88