| 1 |
<?php |
| 2 |
|
| 3 |
namespace SyncBasalam\Admin\Product\elements\ProductList; |
| 4 |
|
| 5 |
use SyncBasalam\Admin\ProductService; |
| 6 |
use SyncBasalam\Services\VendorSyncPolicy; |
| 7 |
|
| 8 |
defined('ABSPATH') || exit; |
| 9 |
|
| 10 |
class Actions |
| 11 |
{ |
| 12 |
public function registerBulkActions($actions) |
| 13 |
{ |
| 14 |
$vendorSyncPolicy = syncBasalamContainer()->get(VendorSyncPolicy::class); |
| 15 |
|
| 16 |
$actions['sync_basalam_bulk_edit'] = 'ویرایش ووسلا� |
| 17 |
'; |
| 18 |
if ($vendorSyncPolicy->canCreate()) { |
| 19 |
$actions['add_to_basalam'] = 'افزودن به باسلا� |
| 20 |
'; |
| 21 |
} |
| 22 |
if ($vendorSyncPolicy->canUpdate(false)) { |
| 23 |
$actions['update_on_basalam'] = $vendorSyncPolicy->shouldRestrictUpdateFields(false) |
| 24 |
? 'بروزرسانی قی� |
| 25 |
ت و � |
| 26 |
وجودی در باسلا� |
| 27 |
' |
| 28 |
: 'آپدیت در باسلا� |
| 29 |
'; |
| 30 |
} |
| 31 |
$actions['disconnect_basalam_product'] = 'قطع اتصال � |
| 32 |
حصول باسلا� |
| 33 |
'; |
| 34 |
|
| 35 |
return $actions; |
| 36 |
} |
| 37 |
|
| 38 |
public function handleBulkAction($redirectTo, $doaction, $postIds) |
| 39 |
{ |
| 40 |
if (!isset($_REQUEST['_wpnonce']) || !wp_verify_nonce(sanitize_text_field(wp_unslash($_REQUEST['_wpnonce'])), 'bulk-posts')) { |
| 41 |
wp_die('درخواست نا� |
| 42 |
عتبر است. لطفاً دوباره تلاش کنید.'); |
| 43 |
} |
| 44 |
|
| 45 |
$vendorSyncPolicy = syncBasalamContainer()->get(VendorSyncPolicy::class); |
| 46 |
|
| 47 |
if ($doaction === 'add_to_basalam' && $vendorSyncPolicy->canCreate()) { |
| 48 |
ProductService::enqueueSelectedProductsForCreation($postIds); |
| 49 |
$redirectTo = add_query_arg('sync_basalam_added'); |
| 50 |
} |
| 51 |
|
| 52 |
if ($doaction === 'update_on_basalam' && $vendorSyncPolicy->canUpdate(false)) { |
| 53 |
ProductService::enqueueSelectedProductsForUpdate($postIds); |
| 54 |
$redirectTo = add_query_arg('sync_basalam_updated'); |
| 55 |
} |
| 56 |
|
| 57 |
if ($doaction === 'disconnect_basalam_product') { |
| 58 |
ProductService::disconnectSelectedProducts($postIds); |
| 59 |
$redirectTo = add_query_arg('sync_basalam_disconnected_products'); |
| 60 |
} |
| 61 |
|
| 62 |
return $redirectTo; |
| 63 |
} |
| 64 |
} |
| 65 |
|