PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 2.0.5
JetFormBuilder — Dynamic Blocks Form Builder v2.0.5
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / includes / gateways / db-models / payer-model.php
jetformbuilder / includes / gateways / db-models Last commit date
constraints 4 years ago payer-model.php 4 years ago payer-shipping-model.php 4 years ago payment-meta-model.php 4 years ago payment-model.php 4 years ago payment-to-payer-shipping-model.php 4 years ago payment-to-record.php 4 years ago
payer-model.php
92 lines
1 <?php
2
3
4 namespace Jet_Form_Builder\Gateways\Db_Models;
5
6 use Jet_Form_Builder\Db_Queries\Base_Db_Model;
7 use Jet_Form_Builder\Db_Queries\Exceptions\Sql_Exception;
8 use Jet_Form_Builder\Exceptions\Query_Builder_Exception;
9 use Jet_Form_Builder\Gateways\Query_Views\Payer_View;
10
11 class Payer_Model extends Base_Db_Model {
12
13 /**
14 * @inheritDoc
15 */
16 public static function table_name(): string {
17 return 'payers';
18 }
19
20 /**
21 * @inheritDoc
22 */
23 public static function schema(): array {
24 return array(
25 'id' => 'bigint(20) NOT NULL AUTO_INCREMENT',
26 'user_id' => 'bigint(20)',
27 'payer_id' => 'varchar(100)',
28 'first_name' => 'varchar(100)',
29 'last_name' => 'varchar(100)',
30 'email' => 'varchar(255)',
31 'created_at' => 'TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP',
32 'updated_at' => 'TIMESTAMP NOT NULL',
33 );
34 }
35
36 /**
37 * @inheritDoc
38 */
39 public static function schema_keys(): array {
40 return array(
41 'id' => 'primary key',
42 'payer_id' => 'index',
43 'email' => 'index',
44 );
45 }
46
47 /**
48 * @param $payer
49 *
50 * @return int
51 * @throws Sql_Exception
52 */
53 public static function insert_or_update( $payer ): int {
54 $payer_id = $payer['payer_id'] ?? '';
55
56 try {
57 $find_payer = Payer_View::find(
58 array(
59 'payer_id' => $payer_id,
60 )
61 )->query()->query_one();
62
63 } catch ( Query_Builder_Exception $exception ) {
64 return ( new self() )->insert( $payer );
65 }
66
67 self::update_payer( $payer );
68
69 return (int) ( $find_payer['id'] ?? 0 );
70 }
71
72 /**
73 * @param $payer
74 *
75 * @return int
76 */
77 public static function update_payer( $payer ): int {
78 $where = array();
79
80 if ( isset( $payer['id'] ) ) {
81 $where['id'] = $payer['id'];
82 } elseif ( isset( $payer['payer_id'] ) ) {
83 $where['payer_id'] = $payer['payer_id'];
84 }
85 unset( $payer['id'], $payer['payer_id'] );
86
87 return ( new static() )->update_soft( $payer, $where );
88 }
89
90
91 }
92