PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.8.5
ووسلام – همگام سازی ووکامرس و باسلام v1.8.5
1.10.19 1.10.20 1.10.18 1.10.17 1.10.15 1.10.14 1.10.13 1.10.12 1.10.10 1.10.9 1.10.8 1.10.7 1.10.6 1.10.5 1.10.4 1.10.3 1.10.2 1.10.1 1.10.0 1.9.2 1.9.1 1.9.0 1.8.8 1.8.5 1.8.6 All 53 releases
sync-basalam / includes / Activator.php

Activator.php in ووسلام – همگام سازی ووکامرس و باسلام 1.8.5, at includes/Activator.php

133 lines 5.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SyncBasalam;
4
5 defined('ABSPATH') || exit;
6
7 class Activator
8 {
9 public static function activate()
10 {
11 self::activateDb();
12 }
13
14 public static function activateDb()
15 {
16 require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
17 global $wpdb;
18
19 $table_name_payments = $wpdb->prefix . 'sync_basalam_payments';
20 $table_name_options = $wpdb->prefix . 'sync_basalam_map_options';
21 $table_name_uploaded_photo = $wpdb->prefix . 'sync_basalam_uploaded_photo';
22 $table_name_debug_logs = $wpdb->prefix . 'sync_basalam_debug_logs';
23 $table_name_discount_tasks = $wpdb->prefix . 'sync_basalam_discount_tasks';
24 $table_name_category_mappings = $wpdb->prefix . 'sync_basalam_category_mappings';
25 $table_name_jobs_manager = $wpdb->prefix . 'sync_basalam_job_manager';
26 $charset_collate = $wpdb->get_charset_collate();
27
28 $sql_Payment = "CREATE TABLE $table_name_payments (
29 id INT AUTO_INCREMENT,
30 payment_id INT,
31 invoice_id INT NOT NULL,
32 user_id INT NOT NULL,
33 city_id INT NOT NULL,
34 province_id INT NOT NULL,
35 order_id INT DEFAULT NULL,
36 PRIMARY KEY (id)
37 ) $charset_collate;";
38
39 $sql_options = "CREATE TABLE $table_name_options (
40 id INT AUTO_INCREMENT,
41 woo_name VARCHAR(255),
42 sync_basalam_name VARCHAR(255),
43 PRIMARY KEY (id)
44 ) $charset_collate;";
45
46 $sql_uploaded_photo = "CREATE TABLE $table_name_uploaded_photo (
47 id INT AUTO_INCREMENT,
48 woo_photo_id INT,
49 sync_basalam_photo_id INT,
50 sync_basalam_photo_url VARCHAR(2083),
51 created_at DATETIME NOT NULL,
52 PRIMARY KEY (id),
53 UNIQUE KEY unique_woo_photo_id (woo_photo_id)
54 ) $charset_collate;";
55
56 $sql_debug_logs = "CREATE TABLE $table_name_debug_logs (
57 id BIGINT UNSIGNED AUTO_INCREMENT,
58 request_url VARCHAR(2083) NOT NULL,
59 status_code INT NULL,
60 success TINYINT(1) NOT NULL DEFAULT 0,
61 response_time_ms INT NULL,
62 error_message TEXT NULL,
63 created_at DATETIME NOT NULL,
64 PRIMARY KEY (id),
65 KEY created_at_idx (created_at)
66 ) $charset_collate;";
67
68 $sql_discount_tasks = "CREATE TABLE $table_name_discount_tasks (
69 id BIGINT(20) NOT NULL AUTO_INCREMENT,
70 product_id VARCHAR(50) DEFAULT NULL,
71 variation_id VARCHAR(50) DEFAULT NULL,
72 discount_percent DECIMAL(5,2) NOT NULL,
73 active_days INT(11) NOT NULL,
74 action ENUM('apply','remove') DEFAULT 'apply',
75 status ENUM('pending','processing','completed','failed') DEFAULT 'pending',
76 created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
77 scheduled_at DATETIME DEFAULT CURRENT_TIMESTAMP,
78 processed_at DATETIME DEFAULT NULL,
79 error_message TEXT DEFAULT NULL,
80 PRIMARY KEY (id),
81 KEY idx_status (status),
82 KEY idx_action (action),
83 KEY idx_discount_percent (discount_percent),
84 KEY idx_scheduled_at (scheduled_at),
85 KEY idx_product_id (product_id),
86 KEY idx_variation_id (variation_id)
87 ) $charset_collate;";
88
89 $sql_category_mappings = "CREATE TABLE $table_name_category_mappings (
90 id int(11) NOT NULL AUTO_INCREMENT,
91 woo_category_id int(11) NOT NULL,
92 woo_category_name varchar(255) NOT NULL,
93 basalam_category_level1 int(11) DEFAULT NULL,
94 basalam_category_level2 int(11) DEFAULT NULL,
95 basalam_category_level3 int(11) DEFAULT NULL,
96 basalam_category_name varchar(255) NOT NULL,
97 created_at datetime DEFAULT CURRENT_TIMESTAMP,
98 updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
99 PRIMARY KEY (id),
100 UNIQUE KEY woo_category_unique (woo_category_id),
101 KEY basalam_category_level1_idx (basalam_category_level1)
102 ) $charset_collate;";
103
104 $sql_jobs_manager = "CREATE TABLE $table_name_jobs_manager (
105 id BIGINT(20) NOT NULL AUTO_INCREMENT,
106 job_type VARCHAR(255) DEFAULT NULL,
107 status ENUM('pending','processing','completed','failed') DEFAULT 'pending',
108 payload TEXT DEFAULT NULL,
109 created_at BIGINT(20) NOT NULL DEFAULT 0,
110 started_at BIGINT(20) NOT NULL DEFAULT 0,
111 completed_at BIGINT(20) NOT NULL DEFAULT 0,
112 failed_at INT NULL,
113 error_message TEXT DEFAULT NULL,
114 attempts TINYINT UNSIGNED NOT NULL DEFAULT 0,
115 max_attempts TINYINT UNSIGNED NOT NULL DEFAULT 3,
116 retry_after BIGINT(20) NULL DEFAULT NULL,
117 PRIMARY KEY (id),
118 KEY idx_status (status),
119 KEY idx_job_type (job_type(191)),
120 KEY idx_status_job_type (status, job_type(100)),
121 KEY idx_created_at (created_at)
122 ) $charset_collate;";
123
124 dbDelta($sql_Payment);
125 dbDelta($sql_options);
126 dbDelta($sql_uploaded_photo);
127 dbDelta($sql_debug_logs);
128 dbDelta($sql_discount_tasks);
129 dbDelta($sql_category_mappings);
130 dbDelta($sql_jobs_manager);
131 }
132 }
133