PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / trunk
ووسلام – همگام سازی ووکامرس و باسلام vtrunk
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 1.8.7 1.8.4 1.7.6 All 50 releases
sync-basalam / includes / Activator.php

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

136 lines 5.4 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_media = $wpdb->prefix . 'sync_basalam_uploaded_media';
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_media = "CREATE TABLE $table_name_uploaded_media (
47 id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
48 type VARCHAR(16) NOT NULL,
49 source_identity VARCHAR(191) NOT NULL,
50 media_id BIGINT UNSIGNED NULL,
51 media_url VARCHAR(2083) NULL,
52 created_at DATETIME NOT NULL,
53 PRIMARY KEY (id),
54 UNIQUE KEY unique_type_source (type, source_identity),
55 KEY idx_type_created (type, created_at),
56 KEY idx_created_at (created_at)
57 ) $charset_collate;";
58
59 $sql_debug_logs = "CREATE TABLE $table_name_debug_logs (
60 id BIGINT UNSIGNED AUTO_INCREMENT,
61 request_url VARCHAR(2083) NOT NULL,
62 status_code INT NULL,
63 success TINYINT(1) NOT NULL DEFAULT 0,
64 response_time_ms INT NULL,
65 error_message TEXT NULL,
66 created_at DATETIME NOT NULL,
67 PRIMARY KEY (id),
68 KEY created_at_idx (created_at)
69 ) $charset_collate;";
70
71 $sql_discount_tasks = "CREATE TABLE $table_name_discount_tasks (
72 id BIGINT(20) NOT NULL AUTO_INCREMENT,
73 product_id VARCHAR(50) DEFAULT NULL,
74 variation_id VARCHAR(50) DEFAULT NULL,
75 discount_percent DECIMAL(5,2) NOT NULL,
76 active_days INT(11) NOT NULL,
77 action ENUM('apply','remove') DEFAULT 'apply',
78 status ENUM('pending','processing','completed','failed') DEFAULT 'pending',
79 created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
80 scheduled_at DATETIME DEFAULT CURRENT_TIMESTAMP,
81 processed_at DATETIME DEFAULT NULL,
82 error_message TEXT DEFAULT NULL,
83 PRIMARY KEY (id),
84 KEY idx_status (status),
85 KEY idx_action (action),
86 KEY idx_discount_percent (discount_percent),
87 KEY idx_scheduled_at (scheduled_at),
88 KEY idx_product_id (product_id),
89 KEY idx_variation_id (variation_id)
90 ) $charset_collate;";
91
92 $sql_category_mappings = "CREATE TABLE $table_name_category_mappings (
93 id int(11) NOT NULL AUTO_INCREMENT,
94 woo_category_id int(11) NOT NULL,
95 woo_category_name varchar(255) NOT NULL,
96 basalam_category_level1 int(11) DEFAULT NULL,
97 basalam_category_level2 int(11) DEFAULT NULL,
98 basalam_category_level3 int(11) DEFAULT NULL,
99 basalam_category_name varchar(255) NOT NULL,
100 created_at datetime DEFAULT CURRENT_TIMESTAMP,
101 updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
102 PRIMARY KEY (id),
103 UNIQUE KEY woo_category_unique (woo_category_id),
104 KEY basalam_category_level1_idx (basalam_category_level1)
105 ) $charset_collate;";
106
107 $sql_jobs_manager = "CREATE TABLE $table_name_jobs_manager (
108 id BIGINT(20) NOT NULL AUTO_INCREMENT,
109 job_type VARCHAR(255) DEFAULT NULL,
110 status ENUM('pending','processing','completed','failed') DEFAULT 'pending',
111 payload TEXT DEFAULT NULL,
112 created_at BIGINT(20) NOT NULL DEFAULT 0,
113 started_at BIGINT(20) NOT NULL DEFAULT 0,
114 completed_at BIGINT(20) NOT NULL DEFAULT 0,
115 failed_at INT NULL,
116 error_message TEXT DEFAULT NULL,
117 attempts TINYINT UNSIGNED NOT NULL DEFAULT 0,
118 max_attempts TINYINT UNSIGNED NOT NULL DEFAULT 3,
119 retry_after BIGINT(20) NULL DEFAULT NULL,
120 PRIMARY KEY (id),
121 KEY idx_status (status),
122 KEY idx_job_type (job_type(191)),
123 KEY idx_status_job_type (status, job_type(100)),
124 KEY idx_created_at (created_at)
125 ) $charset_collate;";
126
127 dbDelta($sql_Payment);
128 dbDelta($sql_options);
129 dbDelta($sql_uploaded_media);
130 dbDelta($sql_debug_logs);
131 dbDelta($sql_discount_tasks);
132 dbDelta($sql_category_mappings);
133 dbDelta($sql_jobs_manager);
134 }
135 }
136