ID; $productStatus = get_post_meta($productId, ProductMetaKey::basalamProductSyncStatus(), true); switch ($productStatus) { case 'synced': $statusColor = 'green'; $statusTooltip = 'محصول با باسلام همگام است.'; break; case 'pending': $statusColor = 'yellow'; $statusTooltip = 'محصول در حال اجرای عملیات است.'; break; default: $statusColor = 'red'; $statusTooltip = 'محصول با باسلام همگام نیست.'; break; } add_meta_box( 'sync_basalam_single_product_manage_box', 'تنظیمات باسلام ', [self::class, 'renderMetaBox'], 'product', 'side', 'high' ); } public static function renderMetaBox($post) { $productId = $post->ID; $productStatus = get_post_status($productId); $basalamProductStatus = get_post_meta($productId, ProductMetaKey::basalamProductStatus(), true); $basalamProductSyncStatus = get_post_meta($productId, ProductMetaKey::basalamProductSyncStatus(), true); $syncBasalamProductId = get_post_meta($productId, ProductMetaKey::basalamProductId(), true); $settings = syncBasalamSettings(); $BasalamAccessToken = $settings->getSettings(SettingsConfig::TOKEN); $syncBasalamVendorId = $settings->getSettings(SettingsConfig::VENDOR_ID); $vendorSyncPolicy = syncBasalamContainer()->get(VendorSyncPolicy::class); $vendorSyncState = $vendorSyncPolicy->getFrontendState(); if ($productStatus == 'publish') { if ($basalamProductSyncStatus == 'pending') { echo '

یک عملیات برای این محصول در جریان است.

'; } elseif (!$BasalamAccessToken || !$syncBasalamVendorId) { echo '

دسترسی های لازم دریافت نشده است ، ابتدا دسترسی ها را دریافت نمایید.

'; } else { // بدون شناسه محصول باسلام، محصول متصل نیست؛ حتی اگر وضعیت‌های قدیمی روی محصول مانده باشد. if ($basalamProductStatus && $syncBasalamProductId) { if (!empty($vendorSyncState['can_update'])) { $updateLabel = $vendorSyncState['mode'] === VendorSyncPolicy::MODE_INACTIVE_LIMITED ? 'بروزرسانی قیمت و موجودی در باسلام' : 'بروزسانی محصول در باسلام'; CommonComponents::renderBtn($updateLabel, 'update_product_in_basalam', $post->ID, 'update_product_in_basalam_nonce', true); } else { echo '

' . esc_html($vendorSyncState['message']) . '

'; } if ($vendorSyncPolicy->canUpdateProductStatus(false)) { if ($basalamProductStatus == 2976) { CommonComponents::renderBtn('آرشیو کردن محصول در باسلام', 'archive_exist_product_on_basalam', $post->ID, 'archive_exist_product_on_basalam_nonce', true); } else { CommonComponents::renderBtn('بازگردانی محصول در باسلام', 'restore_exist_product_on_basalam', $post->ID, 'restore_exist_product_on_basalam_nonce', true); } } $link = "https://basalam.com/p/" . $syncBasalamProductId; CommonComponents::renderLink('مشاهده محصول در باسلام', $link); CommonComponents::renderBtn('قطع اتصال محصول', 'disconnect_exist_product_on_basalam', $post->ID, 'disconnect_exist_product_on_basalam_nonce', true); } else { if (!empty($vendorSyncState['can_create'])) { CommonComponents::renderBtn('اضافه کردن محصول در باسلام', 'create_product_basalam', $post->ID, 'create_product_basalam_nonce', true); } else { echo '

' . esc_html($vendorSyncState['message']) . '

'; } require_once syncBasalamPlugin()->templatePath("products/ConnectButton.php"); } } } else { echo '

برای دسترسی به تنظیمات باسلام ، وضعیت محصول را به "منتشر شده" تغییر دهید.

'; } $nonceGetBasalamCategoryIdsAction = 'basalam_get_category_ids_nonce'; $nonceGetBasalamCategoryIdValue = wp_create_nonce($nonceGetBasalamCategoryIdsAction); echo '
'; echo '
'; $nonceGetBasalamCategoryAttrAction = 'basalam_get_category_attrs_nonce'; $nonceGetBasalamCategoryAttrValue = wp_create_nonce($nonceGetBasalamCategoryAttrAction); echo '
'; } }