wp_queue()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2

Importance

Changes 9
Bugs 0 Features 1
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 6
ccs 3
cts 3
cp 1
crap 2
rs 9.4285
c 9
b 0
f 1
1
<?php
2
3
use WP_Queue\Queue;
4
use WP_Queue\QueueManager;
5
6
if ( ! function_exists( 'wp_queue' ) ) {
7
	/**
8
	 * Return Queue instance.
9
	 *
10
	 * @param string $connection
11
	 *
12
	 * @return Queue
13
	 */
14
	function wp_queue( $connection = '' ) {
15 1
		if( empty( $connection ) ) {
16 1
			$connection = apply_filters( 'wp_queue_default_connection', 'database' );
17
		}
18
		
19 1
		return QueueManager::resolve( $connection );
20
	}
21
}
22
23
if ( ! function_exists( 'wp_queue_install_tables' ) ) {
24
	/**
25
	 * Install database tables
26
	 */
27
	function wp_queue_install_tables() {
28
		global $wpdb;
29
30
		require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
31
32
		$wpdb->hide_errors();
33
		$charset_collate = $wpdb->get_charset_collate();
34
35
		$sql = "CREATE TABLE {$wpdb->prefix}queue_jobs (
36
				id bigint(20) NOT NULL AUTO_INCREMENT,
37
				job longtext NOT NULL,
38
				attempts tinyint(3) NOT NULL DEFAULT 0,
39
				reserved_at datetime DEFAULT NULL,
40
				available_at datetime NOT NULL,
41
				created_at datetime NOT NULL,
42
				PRIMARY KEY  (id)
43
				) $charset_collate;";
44
45
		dbDelta( $sql );
46
47
		$sql = "CREATE TABLE {$wpdb->prefix}queue_failures (
48
				id bigint(20) NOT NULL AUTO_INCREMENT,
49
				job longtext NOT NULL,
50
				error text DEFAULT NULL,
51
				failed_at datetime NOT NULL,
52
				PRIMARY KEY  (id)
53
				) $charset_collate;";
54
55
		dbDelta( $sql );
56
	}
57
}