# sync-basalam/1.8.5/includes/Admin/Product/Operations/RestoreProduct.php

ووسلام – همگام سازی ووکامرس و باسلام, version 1.8.5. 50 lines.

- Page: https://pluginprobe.com/plugins/sync-basalam/1.8.5/code/includes/Admin/Product/Operations/RestoreProduct.php
- Raw: https://pluginprobe.com/plugins/sync-basalam/1.8.5/raw/includes/Admin/Product/Operations/RestoreProduct.php
- Modified: 2026-05-10T09:39:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/sync-basalam/1.8.5/code/includes/Admin/Product/Operations/RestoreProduct.php#L10-L20`.

```php
<?php

namespace SyncBasalam\Admin\Product\Operations;

use SyncBasalam\Admin\Product\Operations\AbstractProductOperation;
use SyncBasalam\Services\Products\UpdateSingleProductService;

defined('ABSPATH') || exit;

class RestoreProduct extends AbstractProductOperation
{
    private $updateProductService;
    private const STATUS_ACTIVE = 2976;

    public function __construct($updateProductService = null)
    {
        parent::__construct();
        $this->updateProductService = $updateProductService ?: syncBasalamContainer()->get(UpdateSingleProductService::class);
    }


    protected function run(int $product_id, array $args = []): array
    {
        $result = $this->updateProductService->updateProductStatus($product_id, self::STATUS_ACTIVE);

        if (!$result) throw new \Exception('بازگردانی وضعیت محصول ناموفق بود');

        return [
            'success' => true,
            'message' => sprintf('محصول با موفقیت بازگردانی شد.'),
            'status_code' => 200,
            'product_id' => $product_id,
            'restored' => true
        ];
    }

    public function validate(int $product_id): bool
    {
        if (!parent::validate($product_id)) return false;

        $validation = $this->validator->validateBasalamConnection($product_id);
        if (!$validation['valid']) {
            $this->validator->logValidationResult($product_id, $validation, $this->getOperationNameFromClass());
            return false;
        }

        return true;
    }
}

```
