wp_queue_install_tables()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 29
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 10
nc 1
nop 0
dl 0
loc 29
ccs 0
cts 10
cp 0
crap 2
rs 8.8571
c 1
b 0
f 0
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
}