# wpsynchro/trunk/src/API/ExecuteAction.php

WP Synchro – The Ultimate WordPress Migration Tool, version trunk. 45 lines.

- Page: https://pluginprobe.com/plugins/wpsynchro/trunk/code/src/API/ExecuteAction.php
- Raw: https://pluginprobe.com/plugins/wpsynchro/trunk/raw/src/API/ExecuteAction.php
- Modified: 2026-09-04T12:18:00+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/wpsynchro/trunk/code/src/API/ExecuteAction.php#L10-L20`.

```php
<?php

namespace WPSynchro\API;

use WPSynchro\Transport\ReturnResult;
use WPSynchro\Transport\Transfer;
use WPSynchro\Transport\TransferAccessKey;
use WPSynchro\Utilities\Actions\ClearCachesOnSuccess;
use WPSynchro\Utilities\Actions\ClearCurrentTransfer;
use WPSynchro\Utilities\Actions\ClearTransients;

/**
 * Class for handling service "executeaction"
 * Call should already be verified by permissions callback
 */
class ExecuteAction extends WPSynchroService
{
    public function service()
    {
        $result = new \stdClass();

        // Get transfer object, so we can get data
        $transfer = new Transfer();
        $transfer->setEncryptionKey(TransferAccessKey::getAccessKey());
        $transfer->populateFromString($this->getRequestBody());
        $data = $transfer->getDataObject();
        if (in_array("clearcaches", $data)) {
            (new ClearCachesOnSuccess())->doAction([]);
        }

        if (in_array("cleartransfertoken", $data)) {
            (new ClearCurrentTransfer())->doAction([]);
        }

        // Clear site transients, always, to prevent wrong data in transients after transfer
        (new ClearTransients())->doAction([]);

        // Return
        $returnresult = new ReturnResult();
        $returnresult->init();
        $returnresult->setDataObject($result);
        return $returnresult->echoDataFromServiceAndExit();
    }
}

```
