Passed
Push — master ( c0935a...48c031 )
by litefeel
03:40
created
writing-on-github.php 1 patch
Indentation   +384 added lines, -384 removed lines patch added patch discarded remove patch
@@ -14,398 +14,398 @@
 block discarded – undo
14 14
 // This fixes function duplication during unit testing.
15 15
 $path = dirname( __FILE__ ) . '/vendor/autoload.php';
16 16
 if ( file_exists( $path ) ) {
17
-    require_once( $path );
17
+	require_once( $path );
18 18
 }
19 19
 
20 20
 add_action( 'plugins_loaded', array( new Writing_On_GitHub, 'boot' ) );
21 21
 
22 22
 class Writing_On_GitHub {
23 23
 
24
-    /**
25
-     * Object instance
26
-     * @var self
27
-     */
28
-    public static $instance;
29
-
30
-    /**
31
-     * Language text domain
32
-     * @var string
33
-     */
34
-    public static $text_domain = 'writing-on-github';
35
-
36
-    /**
37
-     * Controller object
38
-     * @var Writing_On_GitHub_Controller
39
-     */
40
-    public $controller;
41
-
42
-    /**
43
-     * Controller object
44
-     * @var Writing_On_GitHub_Admin
45
-     */
46
-    public $admin;
47
-
48
-    /**
49
-     * CLI object.
50
-     *
51
-     * @var Writing_On_GitHub_CLI
52
-     */
53
-    protected $cli;
54
-
55
-    /**
56
-     * Request object.
57
-     *
58
-     * @var Writing_On_GitHub_Request
59
-     */
60
-    protected $request;
61
-
62
-    /**
63
-     * Response object.
64
-     *
65
-     * @var Writing_On_GitHub_Response
66
-     */
67
-    protected $response;
68
-
69
-    /**
70
-     * Api object.
71
-     *
72
-     * @var Writing_On_GitHub_Api
73
-     */
74
-    protected $api;
75
-
76
-    /**
77
-     * Import object.
78
-     *
79
-     * @var Writing_On_GitHub_Import
80
-     */
81
-    protected $import;
82
-
83
-    /**
84
-     * Export object.
85
-     *
86
-     * @var Writing_On_GitHub_Export
87
-     */
88
-    protected $export;
89
-
90
-    /**
91
-     * Semaphore object.
92
-     *
93
-     * @var Writing_On_GitHub_Semaphore
94
-     */
95
-    protected $semaphore;
96
-
97
-    /**
98
-     * Database object.
99
-     *
100
-     * @var Writing_On_GitHub_Database
101
-     */
102
-    protected $database;
103
-
104
-    /**
105
-     * Called at load time, hooks into WP core
106
-     */
107
-    public function __construct() {
108
-        self::$instance = $this;
109
-
110
-        if ( is_admin() ) {
111
-            $this->admin = new Writing_On_GitHub_Admin( plugin_basename( __FILE__ ) );
112
-        }
113
-
114
-        $this->controller = new Writing_On_GitHub_Controller( $this );
115
-
116
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
117
-            WP_CLI::add_command( 'wogh', $this->cli() );
118
-        }
119
-    }
120
-
121
-    /**
122
-     * Attaches the plugin's hooks into WordPress.
123
-     */
124
-    public function boot() {
125
-        register_activation_hook( __FILE__, array( $this, 'activate' ) );
126
-        add_action( 'admin_notices', array( $this, 'activation_notice' ) );
127
-
128
-        add_action( 'init', array( $this, 'l10n' ) );
129
-
130
-        // Controller actions.
131
-        add_action( 'save_post', array( $this->controller, 'export_post' ) );
132
-        add_action( 'delete_post', array( $this->controller, 'delete_post' ) );
133
-        add_action( 'wp_ajax_nopriv_wogh_push_request', array( $this->controller, 'pull_posts' ) );
134
-        add_action( 'wogh_export', array( $this->controller, 'export_all' ), 10, 2 );
135
-        add_action( 'wogh_import', array( $this->controller, 'import_master' ), 10, 2 );
136
-        add_filter( 'get_edit_post_link', array( $this, 'edit_post_link' ), 10, 3 );
137
-
138
-        // add_filter( 'wogh_post_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
139
-        // add_filter( 'wogh_pre_import_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
140
-        add_filter( 'the_content', array( $this, 'the_content' ) );
141
-
142
-        do_action( 'wogh_boot', $this );
143
-    }
144
-
145
-    public function edit_post_link($link, $postID, $context) {
146
-        if ( ! wp_is_post_revision( $postID ) ) {
147
-            $post = new Writing_On_GitHub_Post( $postID, Writing_On_GitHub::$instance->api() );
148
-            if ( $post->is_on_github() ) {
149
-                return $post->github_edit_url();
150
-            }
151
-        }
152
-
153
-        return $link;
154
-    }
155
-
156
-    public function ignore_post_meta($meta) {
157
-        $ignore_meta_keys = get_option('wogh_ignore_metas');
158
-        if (empty($ignore_meta_keys)) {
159
-            return $meta;
160
-        }
161
-
162
-        $keys = preg_split("/\\r\\n|\\r|\\n/", $ignore_meta_keys);
163
-        if (empty($keys)) {
164
-            return $meta;
165
-        }
166
-        foreach ($keys as $key => $value) {
167
-            $keys[$key] = trim($value);
168
-        }
169
-
170
-        foreach ($meta as $key => $value) {
171
-            if (in_array($key, $keys)) {
172
-                unset($meta[$key]);
173
-            }
174
-        }
175
-
176
-        return $meta;
177
-    }
178
-
179
-    public function the_content($content) {
180
-        $arr = wp_upload_dir();
181
-        $baseurl = $arr['baseurl'] . '/writing-on-github';
182
-        $basedir = $arr['basedir'] . '/writing-on-github';
183
-
184
-        $content = preg_replace_callback(
185
-            '/(<img [^>]*?src=[\'"])\S*?(\/images\/\S+)([\'"].*?>)/',
186
-            function($matchs) use ($baseurl, $basedir) {
187
-                if (is_file($basedir . $matchs[2])) {
188
-                    $url = $baseurl . $matchs[2];
189
-                    return "${matchs[1]}$url${matchs[3]}";
190
-                }
191
-                return "${matchs[0]}";
192
-            },
193
-            $content
194
-        );
195
-
196
-        $content = preg_replace_callback(
197
-            '/(<a [^>]*?href=[\'"])\S*?(\/images\/S+)\s*([\'"].*?>)/',
198
-            function($matchs) use ($baseurl, $basedir) {
199
-                if (is_file($basedir . $matchs[2])) {
200
-                    $url = $baseurl . $matchs[2];
201
-                    return "${matchs[1]}$url${matchs[3]}";
202
-                }
203
-                return "${matchs[0]}";
204
-            },
205
-            $content
206
-        );
207
-        return $content;
208
-    }
209
-
210
-    /**
211
-     * Init i18n files
212
-     */
213
-    public function l10n() {
214
-        load_plugin_textdomain( self::$text_domain );
215
-    }
216
-
217
-    /**
218
-     * Sets and kicks off the export cronjob
219
-     */
220
-    public function start_export( $force = false ) {
221
-        $this->start_cron( 'export', $force );
222
-    }
223
-
224
-    /**
225
-     * Sets and kicks off the import cronjob
226
-     */
227
-    public function start_import( $force = false ) {
228
-        $this->start_cron( 'import', $force );
229
-    }
230
-
231
-    /**
232
-     * Enables the admin notice on initial activation
233
-     */
234
-    public function activate() {
235
-        if ( 'yes' !== get_option( '_wogh_fully_exported' ) ) {
236
-            set_transient( '_wogh_activated', 'yes' );
237
-        }
238
-    }
239
-
240
-    /**
241
-     * Displays the activation admin notice
242
-     */
243
-    public function activation_notice() {
244
-        if ( ! get_transient( '_wogh_activated' ) ) {
245
-            return;
246
-        }
247
-
248
-        delete_transient( '_wogh_activated' );
249
-
250
-        ?><div class="updated">
24
+	/**
25
+	 * Object instance
26
+	 * @var self
27
+	 */
28
+	public static $instance;
29
+
30
+	/**
31
+	 * Language text domain
32
+	 * @var string
33
+	 */
34
+	public static $text_domain = 'writing-on-github';
35
+
36
+	/**
37
+	 * Controller object
38
+	 * @var Writing_On_GitHub_Controller
39
+	 */
40
+	public $controller;
41
+
42
+	/**
43
+	 * Controller object
44
+	 * @var Writing_On_GitHub_Admin
45
+	 */
46
+	public $admin;
47
+
48
+	/**
49
+	 * CLI object.
50
+	 *
51
+	 * @var Writing_On_GitHub_CLI
52
+	 */
53
+	protected $cli;
54
+
55
+	/**
56
+	 * Request object.
57
+	 *
58
+	 * @var Writing_On_GitHub_Request
59
+	 */
60
+	protected $request;
61
+
62
+	/**
63
+	 * Response object.
64
+	 *
65
+	 * @var Writing_On_GitHub_Response
66
+	 */
67
+	protected $response;
68
+
69
+	/**
70
+	 * Api object.
71
+	 *
72
+	 * @var Writing_On_GitHub_Api
73
+	 */
74
+	protected $api;
75
+
76
+	/**
77
+	 * Import object.
78
+	 *
79
+	 * @var Writing_On_GitHub_Import
80
+	 */
81
+	protected $import;
82
+
83
+	/**
84
+	 * Export object.
85
+	 *
86
+	 * @var Writing_On_GitHub_Export
87
+	 */
88
+	protected $export;
89
+
90
+	/**
91
+	 * Semaphore object.
92
+	 *
93
+	 * @var Writing_On_GitHub_Semaphore
94
+	 */
95
+	protected $semaphore;
96
+
97
+	/**
98
+	 * Database object.
99
+	 *
100
+	 * @var Writing_On_GitHub_Database
101
+	 */
102
+	protected $database;
103
+
104
+	/**
105
+	 * Called at load time, hooks into WP core
106
+	 */
107
+	public function __construct() {
108
+		self::$instance = $this;
109
+
110
+		if ( is_admin() ) {
111
+			$this->admin = new Writing_On_GitHub_Admin( plugin_basename( __FILE__ ) );
112
+		}
113
+
114
+		$this->controller = new Writing_On_GitHub_Controller( $this );
115
+
116
+		if ( defined( 'WP_CLI' ) && WP_CLI ) {
117
+			WP_CLI::add_command( 'wogh', $this->cli() );
118
+		}
119
+	}
120
+
121
+	/**
122
+	 * Attaches the plugin's hooks into WordPress.
123
+	 */
124
+	public function boot() {
125
+		register_activation_hook( __FILE__, array( $this, 'activate' ) );
126
+		add_action( 'admin_notices', array( $this, 'activation_notice' ) );
127
+
128
+		add_action( 'init', array( $this, 'l10n' ) );
129
+
130
+		// Controller actions.
131
+		add_action( 'save_post', array( $this->controller, 'export_post' ) );
132
+		add_action( 'delete_post', array( $this->controller, 'delete_post' ) );
133
+		add_action( 'wp_ajax_nopriv_wogh_push_request', array( $this->controller, 'pull_posts' ) );
134
+		add_action( 'wogh_export', array( $this->controller, 'export_all' ), 10, 2 );
135
+		add_action( 'wogh_import', array( $this->controller, 'import_master' ), 10, 2 );
136
+		add_filter( 'get_edit_post_link', array( $this, 'edit_post_link' ), 10, 3 );
137
+
138
+		// add_filter( 'wogh_post_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
139
+		// add_filter( 'wogh_pre_import_meta', array( $this, 'ignore_post_meta' ), 10, 1 );
140
+		add_filter( 'the_content', array( $this, 'the_content' ) );
141
+
142
+		do_action( 'wogh_boot', $this );
143
+	}
144
+
145
+	public function edit_post_link($link, $postID, $context) {
146
+		if ( ! wp_is_post_revision( $postID ) ) {
147
+			$post = new Writing_On_GitHub_Post( $postID, Writing_On_GitHub::$instance->api() );
148
+			if ( $post->is_on_github() ) {
149
+				return $post->github_edit_url();
150
+			}
151
+		}
152
+
153
+		return $link;
154
+	}
155
+
156
+	public function ignore_post_meta($meta) {
157
+		$ignore_meta_keys = get_option('wogh_ignore_metas');
158
+		if (empty($ignore_meta_keys)) {
159
+			return $meta;
160
+		}
161
+
162
+		$keys = preg_split("/\\r\\n|\\r|\\n/", $ignore_meta_keys);
163
+		if (empty($keys)) {
164
+			return $meta;
165
+		}
166
+		foreach ($keys as $key => $value) {
167
+			$keys[$key] = trim($value);
168
+		}
169
+
170
+		foreach ($meta as $key => $value) {
171
+			if (in_array($key, $keys)) {
172
+				unset($meta[$key]);
173
+			}
174
+		}
175
+
176
+		return $meta;
177
+	}
178
+
179
+	public function the_content($content) {
180
+		$arr = wp_upload_dir();
181
+		$baseurl = $arr['baseurl'] . '/writing-on-github';
182
+		$basedir = $arr['basedir'] . '/writing-on-github';
183
+
184
+		$content = preg_replace_callback(
185
+			'/(<img [^>]*?src=[\'"])\S*?(\/images\/\S+)([\'"].*?>)/',
186
+			function($matchs) use ($baseurl, $basedir) {
187
+				if (is_file($basedir . $matchs[2])) {
188
+					$url = $baseurl . $matchs[2];
189
+					return "${matchs[1]}$url${matchs[3]}";
190
+				}
191
+				return "${matchs[0]}";
192
+			},
193
+			$content
194
+		);
195
+
196
+		$content = preg_replace_callback(
197
+			'/(<a [^>]*?href=[\'"])\S*?(\/images\/S+)\s*([\'"].*?>)/',
198
+			function($matchs) use ($baseurl, $basedir) {
199
+				if (is_file($basedir . $matchs[2])) {
200
+					$url = $baseurl . $matchs[2];
201
+					return "${matchs[1]}$url${matchs[3]}";
202
+				}
203
+				return "${matchs[0]}";
204
+			},
205
+			$content
206
+		);
207
+		return $content;
208
+	}
209
+
210
+	/**
211
+	 * Init i18n files
212
+	 */
213
+	public function l10n() {
214
+		load_plugin_textdomain( self::$text_domain );
215
+	}
216
+
217
+	/**
218
+	 * Sets and kicks off the export cronjob
219
+	 */
220
+	public function start_export( $force = false ) {
221
+		$this->start_cron( 'export', $force );
222
+	}
223
+
224
+	/**
225
+	 * Sets and kicks off the import cronjob
226
+	 */
227
+	public function start_import( $force = false ) {
228
+		$this->start_cron( 'import', $force );
229
+	}
230
+
231
+	/**
232
+	 * Enables the admin notice on initial activation
233
+	 */
234
+	public function activate() {
235
+		if ( 'yes' !== get_option( '_wogh_fully_exported' ) ) {
236
+			set_transient( '_wogh_activated', 'yes' );
237
+		}
238
+	}
239
+
240
+	/**
241
+	 * Displays the activation admin notice
242
+	 */
243
+	public function activation_notice() {
244
+		if ( ! get_transient( '_wogh_activated' ) ) {
245
+			return;
246
+		}
247
+
248
+		delete_transient( '_wogh_activated' );
249
+
250
+		?><div class="updated">
251 251
             <p>
252 252
                 <?php
253
-                    printf(
254
-                        __( 'To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github' ),
255
-                        admin_url( 'options-general.php?page=' . static::$text_domain)
256
-                    );
257
-                ?>
253
+					printf(
254
+						__( 'To set up your site to sync with GitHub, update your <a href="%s">settings</a> and click "Export to GitHub."', 'writing-on-github' ),
255
+						admin_url( 'options-general.php?page=' . static::$text_domain)
256
+					);
257
+				?>
258 258
             </p>
259 259
         </div><?php
260
-    }
261
-
262
-    /**
263
-     * Get the Controller object.
264
-     *
265
-     * @return Writing_On_GitHub_Controller
266
-     */
267
-    public function controller() {
268
-        return $this->controller;
269
-    }
270
-
271
-    /**
272
-     * Lazy-load the CLI object.
273
-     *
274
-     * @return Writing_On_GitHub_CLI
275
-     */
276
-    public function cli() {
277
-        if ( ! $this->cli ) {
278
-            $this->cli = new Writing_On_GitHub_CLI;
279
-        }
280
-
281
-        return $this->cli;
282
-    }
283
-
284
-    /**
285
-     * Lazy-load the Request object.
286
-     *
287
-     * @return Writing_On_GitHub_Request
288
-     */
289
-    public function request() {
290
-        if ( ! $this->request ) {
291
-            $this->request = new Writing_On_GitHub_Request( $this );
292
-        }
293
-
294
-        return $this->request;
295
-    }
296
-
297
-    /**
298
-     * Lazy-load the Response object.
299
-     *
300
-     * @return Writing_On_GitHub_Response
301
-     */
302
-    public function response() {
303
-        if ( ! $this->response ) {
304
-            $this->response = new Writing_On_GitHub_Response( $this );
305
-        }
306
-
307
-        return $this->response;
308
-    }
309
-
310
-    /**
311
-     * Lazy-load the Api object.
312
-     *
313
-     * @return Writing_On_GitHub_Api
314
-     */
315
-    public function api() {
316
-        if ( ! $this->api ) {
317
-            $this->api = new Writing_On_GitHub_Api( $this );
318
-        }
319
-
320
-        return $this->api;
321
-    }
322
-
323
-    /**
324
-     * Lazy-load the Import object.
325
-     *
326
-     * @return Writing_On_GitHub_Import
327
-     */
328
-    public function import() {
329
-        if ( ! $this->import ) {
330
-            $this->import = new Writing_On_GitHub_Import( $this );
331
-        }
332
-
333
-        return $this->import;
334
-    }
335
-
336
-    /**
337
-     * Lazy-load the Export object.
338
-     *
339
-     * @return Writing_On_GitHub_Export
340
-     */
341
-    public function export() {
342
-        if ( ! $this->export ) {
343
-            $this->export = new Writing_On_GitHub_Export( $this );
344
-        }
345
-
346
-        return $this->export;
347
-    }
348
-
349
-    /**
350
-     * Lazy-load the Semaphore object.
351
-     *
352
-     * @return Writing_On_GitHub_Semaphore
353
-     */
354
-    public function semaphore() {
355
-        if ( ! $this->semaphore ) {
356
-            $this->semaphore = new Writing_On_GitHub_Semaphore;
357
-        }
358
-
359
-        return $this->semaphore;
360
-    }
361
-
362
-    /**
363
-     * Lazy-load the Database object.
364
-     *
365
-     * @return Writing_On_GitHub_Database
366
-     */
367
-    public function database() {
368
-        if ( ! $this->database ) {
369
-            $this->database = new Writing_On_GitHub_Database( $this );
370
-        }
371
-
372
-        return $this->database;
373
-    }
374
-
375
-    /**
376
-     * Print to WP_CLI if in CLI environment or
377
-     * write to debug.log if WP_DEBUG is enabled
378
-     * @source http://www.stumiller.me/sending-output-to-the-wordpress-debug-log/
379
-     *
380
-     * @param mixed $msg
381
-     * @param string $write
382
-     */
383
-    public static function write_log( $msg, $write = 'line' ) {
384
-        if ( defined( 'WP_CLI' ) && WP_CLI ) {
385
-            if ( is_array( $msg ) || is_object( $msg ) ) {
386
-                WP_CLI::print_value( $msg );
387
-            } else {
388
-                WP_CLI::$write( $msg );
389
-            }
390
-        } elseif ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
391
-            if ( is_array( $msg ) || is_object( $msg ) ) {
392
-                error_log( print_r( $msg, true ) );
393
-            } else {
394
-                error_log( $msg );
395
-            }
396
-        }
397
-    }
398
-
399
-    /**
400
-     * Kicks of an import or export cronjob.
401
-     *
402
-     * @param bool   $force
403
-     * @param string $type
404
-     */
405
-    protected function start_cron( $type, $force = false ) {
406
-        update_option( '_wogh_' . $type . '_started', 'yes' );
407
-        $user_id = get_current_user_id();
408
-        wp_schedule_single_event( time(), 'wogh_' . $type . '', array( $user_id, $force ) );
409
-        spawn_cron();
410
-    }
260
+	}
261
+
262
+	/**
263
+	 * Get the Controller object.
264
+	 *
265
+	 * @return Writing_On_GitHub_Controller
266
+	 */
267
+	public function controller() {
268
+		return $this->controller;
269
+	}
270
+
271
+	/**
272
+	 * Lazy-load the CLI object.
273
+	 *
274
+	 * @return Writing_On_GitHub_CLI
275
+	 */
276
+	public function cli() {
277
+		if ( ! $this->cli ) {
278
+			$this->cli = new Writing_On_GitHub_CLI;
279
+		}
280
+
281
+		return $this->cli;
282
+	}
283
+
284
+	/**
285
+	 * Lazy-load the Request object.
286
+	 *
287
+	 * @return Writing_On_GitHub_Request
288
+	 */
289
+	public function request() {
290
+		if ( ! $this->request ) {
291
+			$this->request = new Writing_On_GitHub_Request( $this );
292
+		}
293
+
294
+		return $this->request;
295
+	}
296
+
297
+	/**
298
+	 * Lazy-load the Response object.
299
+	 *
300
+	 * @return Writing_On_GitHub_Response
301
+	 */
302
+	public function response() {
303
+		if ( ! $this->response ) {
304
+			$this->response = new Writing_On_GitHub_Response( $this );
305
+		}
306
+
307
+		return $this->response;
308
+	}
309
+
310
+	/**
311
+	 * Lazy-load the Api object.
312
+	 *
313
+	 * @return Writing_On_GitHub_Api
314
+	 */
315
+	public function api() {
316
+		if ( ! $this->api ) {
317
+			$this->api = new Writing_On_GitHub_Api( $this );
318
+		}
319
+
320
+		return $this->api;
321
+	}
322
+
323
+	/**
324
+	 * Lazy-load the Import object.
325
+	 *
326
+	 * @return Writing_On_GitHub_Import
327
+	 */
328
+	public function import() {
329
+		if ( ! $this->import ) {
330
+			$this->import = new Writing_On_GitHub_Import( $this );
331
+		}
332
+
333
+		return $this->import;
334
+	}
335
+
336
+	/**
337
+	 * Lazy-load the Export object.
338
+	 *
339
+	 * @return Writing_On_GitHub_Export
340
+	 */
341
+	public function export() {
342
+		if ( ! $this->export ) {
343
+			$this->export = new Writing_On_GitHub_Export( $this );
344
+		}
345
+
346
+		return $this->export;
347
+	}
348
+
349
+	/**
350
+	 * Lazy-load the Semaphore object.
351
+	 *
352
+	 * @return Writing_On_GitHub_Semaphore
353
+	 */
354
+	public function semaphore() {
355
+		if ( ! $this->semaphore ) {
356
+			$this->semaphore = new Writing_On_GitHub_Semaphore;
357
+		}
358
+
359
+		return $this->semaphore;
360
+	}
361
+
362
+	/**
363
+	 * Lazy-load the Database object.
364
+	 *
365
+	 * @return Writing_On_GitHub_Database
366
+	 */
367
+	public function database() {
368
+		if ( ! $this->database ) {
369
+			$this->database = new Writing_On_GitHub_Database( $this );
370
+		}
371
+
372
+		return $this->database;
373
+	}
374
+
375
+	/**
376
+	 * Print to WP_CLI if in CLI environment or
377
+	 * write to debug.log if WP_DEBUG is enabled
378
+	 * @source http://www.stumiller.me/sending-output-to-the-wordpress-debug-log/
379
+	 *
380
+	 * @param mixed $msg
381
+	 * @param string $write
382
+	 */
383
+	public static function write_log( $msg, $write = 'line' ) {
384
+		if ( defined( 'WP_CLI' ) && WP_CLI ) {
385
+			if ( is_array( $msg ) || is_object( $msg ) ) {
386
+				WP_CLI::print_value( $msg );
387
+			} else {
388
+				WP_CLI::$write( $msg );
389
+			}
390
+		} elseif ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
391
+			if ( is_array( $msg ) || is_object( $msg ) ) {
392
+				error_log( print_r( $msg, true ) );
393
+			} else {
394
+				error_log( $msg );
395
+			}
396
+		}
397
+	}
398
+
399
+	/**
400
+	 * Kicks of an import or export cronjob.
401
+	 *
402
+	 * @param bool   $force
403
+	 * @param string $type
404
+	 */
405
+	protected function start_cron( $type, $force = false ) {
406
+		update_option( '_wogh_' . $type . '_started', 'yes' );
407
+		$user_id = get_current_user_id();
408
+		wp_schedule_single_event( time(), 'wogh_' . $type . '', array( $user_id, $force ) );
409
+		spawn_cron();
410
+	}
411 411
 }
Please login to merge, or discard this patch.