PluginProbe
ووسلام – همگام سازی ووکامرس و باسلام / 1.10.7
ووسلام – همگام سازی ووکامرس و باسلام v1.10.7
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 / Admin / Product / elements / ProductList / MetaBox.php

MetaBox.php in ووسلام – همگام سازی ووکامرس و باسلام 1.10.7, at includes/Admin/Product/elements/ProductList/MetaBox.php

147 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace SyncBasalam\Admin\Product\elements\ProductList;
4
5 use SyncBasalam\Admin\Settings\SettingsConfig;
6 use SyncBasalam\Admin\Components\CommonComponents;
7 use SyncBasalam\Utilities\ProductMetaKey;
8
9 defined('ABSPATH') || exit;
10
11 class MetaBox
12 {
13 public static function registerMetaBox()
14 {
15 global $post;
16 $productId = $post->ID;
17 $productStatus = get_post_meta($productId, ProductMetaKey::basalamProductSyncStatus(), true);
18
19 switch ($productStatus) {
20 case 'synced':
21 $statusColor = 'green';
22 $statusTooltip = '�
23 حصول با باسلا�
24 ه�
25 گا�
26 است.';
27
28 break;
29 case 'pending':
30 $statusColor = 'yellow';
31 $statusTooltip = '�
32 حصول در حال اجرای ع�
33 لیات است.';
34
35 break;
36 default:
37 $statusColor = 'red';
38 $statusTooltip = '�
39 حصول با باسلا�
40 ه�
41 گا�
42 نیست.';
43
44 break;
45 }
46
47 add_meta_box(
48 'sync_basalam_single_product_manage_box',
49 'تنظی�
50 ات باسلا�
51 <span title="' . esc_attr($statusTooltip) . '" style="background:' . esc_attr($statusColor) . ';width: 16px;height: 16px;border-radius: 100%;">
52 <img src="' . esc_url(syncBasalamPlugin()->assetsUrl() . "/icons/info.svg") . '" alt="" class="basalam-img-15">
53 </span>',
54 [self::class, 'renderMetaBox'],
55 'product',
56 'side',
57 'high'
58 );
59 }
60
61 public static function renderMetaBox($post)
62 {
63 $productId = $post->ID;
64 $productStatus = get_post_status($productId);
65
66 $basalamProductStatus = get_post_meta($productId, ProductMetaKey::basalamProductStatus(), true);
67 $basalamProductSyncStatus = get_post_meta($productId, ProductMetaKey::basalamProductSyncStatus(), true);
68 $syncBasalamProductId = get_post_meta($productId, ProductMetaKey::basalamProductId(), true);
69
70 $settings = syncBasalamSettings();
71 $BasalamAccessToken = $settings->getSettings(SettingsConfig::TOKEN);
72 $syncBasalamVendorId = $settings->getSettings(SettingsConfig::VENDOR_ID);
73
74 if ($productStatus == 'publish') {
75 if ($basalamProductSyncStatus == 'pending') {
76 echo '<p class="basalam-p basalam-font-12">یک ع�
77 لیات برای این �
78 حصول در جریان است.</p>';
79 } elseif (!$BasalamAccessToken || !$syncBasalamVendorId) {
80 echo '<p class="basalam-p basalam-font-12">دسترسی های لاز�
81 دریافت نشده است ، ابتدا دسترسی ها را <a href="/wp-admin/admin.php?page=sync_basalam" target="_blank">دریافت</a> ن�
82 ایید.</p>';
83 } else {
84 // بدون شناسه �
85 حصول باسلا�
86 ، �
87 حصول �
88 تصل نیست؛ حتی اگر وضعیت‌های قدی�
89 ی روی �
90 حصول �
91 انده باشد.
92 if ($basalamProductStatus && $syncBasalamProductId) {
93 CommonComponents::renderBtn('بروزسانی �
94 حصول در باسلا�
95 ', 'update_product_in_basalam', $post->ID, 'update_product_in_basalam_nonce', true);
96 if ($basalamProductStatus == 2976) {
97 CommonComponents::renderBtn('آرشیو کردن �
98 حصول در باسلا�
99 ', 'archive_exist_product_on_basalam', $post->ID, 'archive_exist_product_on_basalam_nonce', true);
100 } else {
101 CommonComponents::renderBtn('بازگردانی �
102 حصول در باسلا�
103 ', 'restore_exist_product_on_basalam', $post->ID, 'restore_exist_product_on_basalam_nonce', true);
104 }
105 $link = "https://basalam.com/p/" . $syncBasalamProductId;
106 CommonComponents::renderLink('�
107 شاهده �
108 حصول در باسلا�
109 ', $link);
110 CommonComponents::renderBtn('قطع اتصال �
111 حصول', 'disconnect_exist_product_on_basalam', $post->ID, 'disconnect_exist_product_on_basalam_nonce', true);
112 } else {
113 CommonComponents::renderBtn('اضافه کردن �
114 حصول در باسلا�
115 ', 'create_product_basalam', $post->ID, 'create_product_basalam_nonce', true);
116 require_once syncBasalamPlugin()->templatePath("products/ConnectButton.php");
117 }
118 }
119 } else {
120 echo '<p class="basalam-p basalam-font-12">برای دسترسی به تنظی�
121 ات باسلا�
122 ، وضعیت �
123 حصول را به "�
124 نتشر شده" تغییر دهید.</p>';
125 }
126 $nonceGetBasalamCategoryIdsAction = 'basalam_get_category_ids_nonce';
127 $nonceGetBasalamCategoryIdValue = wp_create_nonce($nonceGetBasalamCategoryIdsAction);
128 echo '<hr>';
129 echo '<div>
130 <button type="button" id="basalam_fetch_categories_btn" class="basalam-p basalam-button-full-primary" style="padding:4px !important;">
131 دریافت دسته‌بندی‌های پیشنهادی باسلا�
132
133 </button>
134 <input type="hidden" id="basalam_get_category_ids_nonce" value="' . esc_attr($nonceGetBasalamCategoryIdValue) . '">
135 </div>
136 <div id="sync_basalam_category_id" class="basalam-p__small basalam--hidden">
137 </div>';
138
139 $nonceGetBasalamCategoryAttrAction = 'basalam_get_category_attrs_nonce';
140 $nonceGetBasalamCategoryAttrValue = wp_create_nonce($nonceGetBasalamCategoryAttrAction);
141
142 echo '<div id="sync_basalam_category_attributes" class="basalam-p__small basalam--hidden">
143 <input type="hidden" id="basalam_get_category_attrs_nonce" value="' . esc_attr($nonceGetBasalamCategoryAttrValue) . '">
144 </div>';
145 }
146 }
147