PluginProbe
PayPlug for WooCommerce (Official) / 2.5.3
PayPlug for WooCommerce (Official) v2.5.3
3.0.0 2.18.0 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.1.0 1.10.0 1.10.1 1.2.1 1.2.10 1.2.11 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 All 101 releases
payplug / src / Model / Lock.php

Lock.php in PayPlug for WooCommerce (Official) 2.5.3, at src/Model/Lock.php

133 lines 3.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Payplug\PayplugWoocommerce\Model;
4
5 class Lock
6 {
7
8 /**
9 * create Lock table
10 */
11 static function create_lock_table(){
12 global $wpdb;
13
14 $sql = "CREATE TABLE IF NOT EXISTS `{$wpdb->base_prefix}woocommerce_payplug_lock` (";
15 $sql .= " `payment_id` VARCHAR(50) NOT NULL,";
16 $sql .= " `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,";
17 $sql .= " PRIMARY KEY (`payment_id`));";
18
19 require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
20 dbDelta( $sql );
21
22 $result = $wpdb->get_row(
23 $wpdb->prepare(
24 "SELECT count(column_name) as column_exists FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '{$wpdb->base_prefix}woocommerce_payplug_lock' AND column_name = %s ", ['id']
25 )
26 );
27
28 if( !empty($result) && !$result->column_exists){
29 static::update_lock_table();
30 }
31
32 }
33
34 /**
35 * update table
36 */
37 static function update_lock_table(){
38 global $wpdb;
39
40 $sql = "ALTER TABLE `{$wpdb->base_prefix}woocommerce_payplug_lock` ";
41 $sql .= " ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT FIRST,";
42 $sql .= " DROP PRIMARY KEY,";
43 $sql .= " ADD PRIMARY KEY (`id`);";
44 $wpdb->query($sql);
45
46 }
47
48 /**
49 * @param $payment_id
50 * @return bool|int
51 */
52 static function insert_lock($payment_id){
53 global $wpdb;
54 $wpdb->hide_errors();
55 $wpdb->insert($wpdb->prefix . 'woocommerce_payplug_lock', array("payment_id" => $payment_id));
56 return $wpdb->insert_id;
57 }
58
59 /**
60 * @param $id
61 * @return bool
62 */
63 static function delete_lock($id){
64 global $wpdb;
65 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
66 $wpdb->query( $wpdb->prepare("DELETE FROM {$table_name} WHERE id = %s OR created < NOW() - INTERVAL 1 DAY;", [$id] ));
67 return true;
68 }
69
70 /**
71 * @param $payment_id
72 * @return bool
73 */
74 static function delete_lock_by_payment_id($payment_id){
75 global $wpdb;
76 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
77 $wpdb->query( $wpdb->prepare("DELETE FROM {$table_name} WHERE payment_id = %s OR created < NOW() - INTERVAL 1 DAY;", [$payment_id] ));
78 return true;
79 }
80
81
82 /**
83 * @param $payment_id
84 * @param $id
85 * @return false
86 */
87 static function locked($payment_id, $id){
88 global $wpdb;
89
90 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
91
92 // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
93 $result = $wpdb->get_row( $wpdb->prepare( "SELECT id FROM {$table_name} WHERE `payment_id` = %s AND `id` <> %s ", array( $payment_id, $id ) ) );
94
95 if ( !$result ) {
96 return false;
97 }
98
99 return $result;
100
101 }
102
103 /**
104 * @param $id
105 * @return bool|int
106 */
107 static function get_lock_by_payment_id($payment_id){
108 global $wpdb;
109
110 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
111
112 // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
113 $result = $wpdb->get_row( $wpdb->prepare( "SELECT id FROM {$table_name} WHERE payment_id = %s", array( $payment_id ) ) );
114 if ( !$result ) {
115 return false;
116 }
117
118 return $result;
119
120 }
121
122 static function delete_lock_table(){
123 global $wpdb;
124
125 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
126 $sql = "DROP TABLE IF EXISTS $table_name;";
127 $wpdb->query($sql);
128
129 }
130
131
132 }
133