Test Failed
Push — feature/meta-tables ( 709186...4c8cbd )
by Ravinder
05:18
created

Give_DB_Form_Meta::__call()   B

Complexity

Conditions 6
Paths 6

Size

Total Lines 44
Code Lines 31

Duplication

Lines 44
Ratio 100 %

Importance

Changes 0
Metric Value
cc 6
eloc 31
nc 6
nop 2
dl 44
loc 44
rs 8.439
c 0
b 0
f 0
1
<?php
2
/**
3
 * Form Meta DB class
4
 *
5
 * @package     Give
6
 * @subpackage  Classes/DB Form Meta
7
 * @copyright   Copyright (c) 2016, WordImpress
8
 * @license     https://opensource.org/licenses/gpl-license GNU Public License
9
 * @since       2.0
10
 */
11
12
// Exit if accessed directly.
13
if ( ! defined( 'ABSPATH' ) ) {
14
	exit;
15
}
16
17
/**
18
 * Class Give_DB_Form_Meta
19
 *
20
 * This class is for interacting with the form meta database table.
21
 *
22
 * @since 2.0
23
 */
24
class Give_DB_Form_Meta extends Give_DB_Meta {
25
	/**
26
	 * Post type
27
	 *
28
	 * @since  2.0
29
	 * @access protected
30
	 * @var bool
31
	 */
32
	protected $post_type = 'give_forms';
33
34
	/**
35
	 * Meta type
36
	 *
37
	 * @since  2.0
38
	 * @access protected
39
	 * @var bool
40
	 */
41
	protected $meta_type = 'form';
42
43
	/**
44
	 * Give_DB_Form_Meta constructor.
45
	 *
46
	 * @access  public
47
	 * @since   2.0
48
	 */
49
	public function __construct() {
50
		/* @var WPDB $wpdb */
51
		global $wpdb;
52
53
		$wpdb->formmeta    = $this->table_name = $wpdb->prefix . 'give_formmeta';
54
		$this->primary_key = 'meta_id';
55
		$this->version     = '1.0';
56
57
		$this->register_table();
58
59
		parent::__construct();
60
	}
61
62
	/**
63
	 * Get table columns and data types.
64
	 *
65
	 * @access  public
66
	 * @since   2.0
67
	 *
68
	 * @return  array  Columns and formats.
69
	 */
70
	public function get_columns() {
71
		return array(
72
			'meta_id'    => '%d',
73
			'form_id'    => '%d',
74
			'meta_key'   => '%s',
0 ignored issues
show
introduced by
Detected usage of meta_key, possible slow query.
Loading history...
75
			'meta_value' => '%s',
0 ignored issues
show
introduced by
Detected usage of meta_value, possible slow query.
Loading history...
76
		);
77
	}
78
79
	/**
80
	 * Create the table
81
	 *
82
	 * @access public
83
	 * @since  2.0
84
	 *
85
	 * @return void
86
	 */
87
	public function create_table() {
88
		global $wpdb;
89
90
		$charset_collate = $wpdb->get_charset_collate();
91
92
		$sql = "CREATE TABLE {$this->table_name} (
93
			meta_id bigint(20) NOT NULL AUTO_INCREMENT,
94
			form_id bigint(20) NOT NULL,
95
			meta_key varchar(255) DEFAULT NULL,
96
			meta_value longtext,
97
			PRIMARY KEY  (meta_id),
98
			KEY form_id (form_id),
99
			KEY meta_key (meta_key)
100
			) {$charset_collate};";
101
102
		require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
103
		dbDelta( $sql );
104
105
		update_option( $this->table_name . '_db_version', $this->version );
106
	}
107
}
108