# sync-basalam/1.10.19/includes/Actions/ActionHandler.php

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

- Page: https://pluginprobe.com/plugins/sync-basalam/1.10.19/code/includes/Actions/ActionHandler.php
- Raw: https://pluginprobe.com/plugins/sync-basalam/1.10.19/raw/includes/Actions/ActionHandler.php
- Modified: 2026-09-17T09:40:56+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.10.19/code/includes/Actions/ActionHandler.php#L10-L20`.

```php
<?php

namespace SyncBasalam\Actions;

defined('ABSPATH') || exit;

class ActionHandler
{
    public static function postAction($actionName, $className)
    {
        add_action('admin_post_' . $actionName, function () use ($actionName, $className) {
            $nonce = isset($_POST['_wpnonce']) ? sanitize_text_field(wp_unslash($_POST['_wpnonce'])) : '';

            if (!wp_verify_nonce($nonce, $actionName . '_nonce')) {
                wp_die('دسترسی غیرمجاز!');
            }
            $handler = syncBasalamContainer()->get($className);

            do_action('before_' . $actionName, $_POST);

            $result = $handler();

            do_action('after_' . $actionName, $result, $_POST);
            $redirectTo = isset($_POST['redirect_to']) ? esc_url_raw($_POST['redirect_to']) : wp_get_referer();
            wp_redirect($redirectTo ?: admin_url()); // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect -- Intentional external/user-provided redirect.
            exit;
        });
    }

    public static function postAjax($actionName, $className)
    {
        add_action('wp_ajax_' . $actionName, function () use ($actionName, $className) {
            $nonce = isset($_POST['_wpnonce']) ? sanitize_text_field(wp_unslash($_POST['_wpnonce'])) : '';

            if (!wp_verify_nonce($nonce, $actionName . '_nonce')) {
                wp_send_json_error([
                    'message' => 'دسترسی غیرمجاز!',
                ]);
            }

            if (!current_user_can('manage_woocommerce')) {
                wp_send_json_error([
                    'message' => 'شما مجاز به انجام این عملیات نیستید.',
                ], 403);
            }

            try {
                $handler = syncBasalamContainer()->get($className);

                do_action('before_' . $actionName, $_POST);

                $result = $handler();

                do_action('after_' . $actionName, $result, $_POST);
            } catch (\Exception $e) {
                wp_send_json_error([
                    'message' => 'خطا در پردازش درخواست: ' . $e->getMessage(),
                ]);
            }
        });
    }

}

```
