Completed
Pull Request — master (#1832)
by Devin
04:50
created

Give_DB_Customers::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
0 ignored issues
show
Coding Style Compatibility introduced by
For compatibility and reusability of your code, PSR1 recommends that a file should introduce either new symbols (like classes, functions, etc.) or have side-effects (like outputting something, or including other files), but not both at the same time. The first symbol is defined on line 16 and the first side effect is on line 26.

The PSR-1: Basic Coding Standard recommends that a file should either introduce new symbols, that is classes, functions, constants or similar, or have side effects. Side effects are anything that executes logic, like for example printing output, changing ini settings or writing to a file.

The idea behind this recommendation is that merely auto-loading a class should not change the state of an application. It also promotes a cleaner style of programming and makes your code less prone to errors, because the logic is not spread out all over the place.

To learn more about the PSR-1, please see the PHP-FIG site on the PSR-1.

Loading history...
2
/**
3
 * Handle renamed classes.
4
 *
5
 * @package Give
6
 */
7
8
9
/**
10
 * Instantiate old properties for backwards compatibility.
11
 *
12
 * @param $instance Give()
13
 *
14
 * @return Give
15
 */
16
function give_load_deprecated_properties( $instance ) {
17
18
	// If a property is renamed then it gets placed below.
19
	$instance->customers     = new Give_DB_Customers();
20
	$instance->customer_meta = new Give_DB_Customer_Meta();
21
22
	return $instance;
23
24
}
25
26
add_action( 'give_init', 'give_load_deprecated_properties', 10, 1 );
27
28
/**
29
 * Give_DB_Customers Class (deprecated)
30
 *
31
 * This class is for interacting with the customers' database table.
32
 *
33
 * @since 1.0
34
 */
35
class Give_DB_Customers extends Give_DB_Donors {
36
37
	/**
38
	 * Give_DB_Customers constructor.
39
	 */
40
	public function __construct() {
41
		parent::__construct();
42
	}
43
44
	/**
45
	 * There are certain responsibility of this function:
46
	 *  1. handle backward compatibility for deprecated functions
47
	 *
48
	 * @since 1.8.8
49
	 *
50
	 * @param $name
51
	 * @param $arguments
52
	 *
53
	 * @return mixed
54
	 */
55
	public function __call( $name, $arguments ) {
56
		$deprecated_function_arr = array(
57
			'get_customer_by',
58
			'give_update_customer_email_on_user_update',
59
			'get_customers',
60
		);
61
62
		if ( in_array( $name, $deprecated_function_arr ) ) {
63
			switch ( $name ) {
64
				case 'get_customers':
65
					$args = ! empty( $arguments[0] ) ? $arguments[0] : array();
66
67
					return $this->get_donors( $args );
68
				case 'get_customer_by':
69
					$field    = ! empty( $arguments[0] ) ? $arguments[0] : 'id';
70
					$donor_id = ! empty( $arguments[1] ) ? $arguments[1] : 0;
71
72
					return $this->get_donor_by( $field, $donor_id );
73
74
				case 'give_update_customer_email_on_user_update':
75
					$user_id       = ! empty( $arguments[0] ) ? $arguments[0] : 0;
76
					$old_user_data = ! empty( $arguments[1] ) ? $arguments[1] : false;
77
78
					return $this->update_donor_email_on_user_update( $user_id, $old_user_data );
79
			}
80
		}
81
	}
82
83
}
84
85
86
/**
87
 * Give_Customer Class (Deprecated)
88
 *
89
 * @since 1.0
90
 */
91
class Give_Customer extends Give_Donor {
92
93
	/**
94
	 * Give_Customer constructor.
95
	 *
96
	 * @param bool $_id_or_email
97
	 * @param bool $by_user_id
98
	 */
99
	public function __construct( $_id_or_email = false, $by_user_id = false ) {
100
		parent::__construct( $_id_or_email, $by_user_id );
101
	}
102
103
	/**
104
	 * There are certain responsibility of this function:
105
	 *  1. handle backward compatibility for deprecated functions
106
	 *
107
	 * @since 1.8.8
108
	 *
109
	 * @param $name
110
	 * @param $arguments
111
	 *
112
	 * @return mixed
113
	 */
114
	public function __call( $name, $arguments ) {
115
	}
116
117
}
118
119
120
/**
121
 * Give_DB_Customer_Meta Class (Deprecated)
122
 *
123
 * @since 1.0
124
 */
125
class Give_DB_Customer_Meta extends Give_DB_Donor_Meta {
126
127
	/**
128
	 * Give_DB_Customer_Meta constructor.
129
	 */
130
	public function __construct() {
131
		/* @var WPDB $wpdb */
132
		global $wpdb;
0 ignored issues
show
Compatibility Best Practice introduced by
Use of global functionality is not recommended; it makes your code harder to test, and less reusable.

Instead of relying on global state, we recommend one of these alternatives:

1. Pass all data via parameters

function myFunction($a, $b) {
    // Do something
}

2. Create a class that maintains your state

class MyClass {
    private $a;
    private $b;

    public function __construct($a, $b) {
        $this->a = $a;
        $this->b = $b;
    }

    public function myFunction() {
        // Do something
    }
}
Loading history...
133
134
		$this->table_name  = $wpdb->prefix . 'give_customermeta';
135
		$this->primary_key = 'meta_id';
136
		$this->version     = '1.0';
137
	}
138
139
140
	/**
141
	 * There are certain responsibility of this function:
142
	 *  1. handle backward compatibility for deprecated functions
143
	 *
144
	 * @since 1.8.8
145
	 *
146
	 * @param $name
147
	 * @param $arguments
148
	 *
149
	 * @return mixed
150
	 */
151
	public function __call( $name, $arguments ) {
152
153
	}
154
155
}
156