PluginProbe
PayPlug for WooCommerce (Official) / 2.6.2
PayPlug for WooCommerce (Official) v2.6.2
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.6.2, at src/Model/Lock.php

134 lines 3.1 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 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
20 require_once ABSPATH . 'wp-admin/includes/upgrade.php';
21 maybe_create_table( $table_name, $sql);
22
23 $result = $wpdb->get_row(
24 $wpdb->prepare(
25 "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']
26 )
27 );
28
29 if( !empty($result) && !$result->column_exists){
30 static::update_lock_table();
31 }
32
33 }
34
35 /**
36 * update table
37 */
38 static function update_lock_table(){
39 global $wpdb;
40
41 $sql = "ALTER TABLE `{$wpdb->base_prefix}woocommerce_payplug_lock` ";
42 $sql .= " ADD COLUMN `id` INT NOT NULL AUTO_INCREMENT FIRST,";
43 $sql .= " DROP PRIMARY KEY,";
44 $sql .= " ADD PRIMARY KEY (`id`);";
45 $wpdb->query($sql);
46
47 }
48
49 /**
50 * @param $payment_id
51 * @return bool|int
52 */
53 static function insert_lock($payment_id){
54 global $wpdb;
55 $wpdb->hide_errors();
56 $wpdb->insert($wpdb->prefix . 'woocommerce_payplug_lock', array("payment_id" => $payment_id));
57 return $wpdb->insert_id;
58 }
59
60 /**
61 * @param $id
62 * @return bool
63 */
64 static function delete_lock($id){
65 global $wpdb;
66 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
67 $wpdb->query( $wpdb->prepare("DELETE FROM {$table_name} WHERE id = %s OR created < NOW() - INTERVAL 1 DAY;", [$id] ));
68 return true;
69 }
70
71 /**
72 * @param $payment_id
73 * @return bool
74 */
75 static function delete_lock_by_payment_id($payment_id){
76 global $wpdb;
77 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
78 $wpdb->query( $wpdb->prepare("DELETE FROM {$table_name} WHERE payment_id = %s OR created < NOW() - INTERVAL 1 DAY;", [$payment_id] ));
79 return true;
80 }
81
82
83 /**
84 * @param $payment_id
85 * @param $id
86 * @return false
87 */
88 static function locked($payment_id, $id){
89 global $wpdb;
90
91 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
92
93 // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
94 $result = $wpdb->get_row( $wpdb->prepare( "SELECT id FROM {$table_name} WHERE `payment_id` = %s AND `id` <> %s ", array( $payment_id, $id ) ) );
95
96 if ( !$result ) {
97 return false;
98 }
99
100 return $result;
101
102 }
103
104 /**
105 * @param $id
106 * @return bool|int
107 */
108 static function get_lock_by_payment_id($payment_id){
109 global $wpdb;
110
111 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
112
113 // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
114 $result = $wpdb->get_row( $wpdb->prepare( "SELECT id FROM {$table_name} WHERE payment_id = %s", array( $payment_id ) ) );
115 if ( !$result ) {
116 return false;
117 }
118
119 return $result;
120
121 }
122
123 static function delete_lock_table(){
124 global $wpdb;
125
126 $table_name = $wpdb->prefix . 'woocommerce_payplug_lock';
127 $sql = "DROP TABLE IF EXISTS $table_name;";
128 $wpdb->query($sql);
129
130 }
131
132
133 }
134