# give/4.16.8.1/src/FormMigration/Contracts/FormMigrationStep.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.8.1. 41 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.8.1/code/src/FormMigration/Contracts/FormMigrationStep.php
- Raw: https://pluginprobe.com/plugins/give/4.16.8.1/raw/src/FormMigration/Contracts/FormMigrationStep.php
- Modified: 2023-10-16T17:55:46+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/give/4.16.8.1/code/src/FormMigration/Contracts/FormMigrationStep.php#L10-L20`.

```php
<?php

namespace Give\FormMigration\Contracts;

use Give\DonationForms\Models\DonationForm as DonationFormV3;
use Give\DonationForms\V2\Models\DonationForm as DonationFormV2;
use Give\FormMigration\DataTransferObjects\FormMigrationPayload;
use Give\FormMigration\FormMetaDecorator;
use Give\Framework\Blocks\BlockCollection;

abstract class FormMigrationStep
{
    /** @var FormMetaDecorator */
    public $formV2;

    /** @var DonationFormV3 */
    public $formV3;

    /** @var BlockCollection */
    protected $fieldBlocks;

    public function __construct(FormMigrationPayload $payload)
    {
        $this->formV2 = new FormMetaDecorator($payload->formV2);
        $this->formV3 = $payload->formV3;
        $this->fieldBlocks = $payload->formV3->blocks;
    }

    public function canHandle(): bool
    {
        return true;
    }

    abstract public function process();

    protected function getMetaV2($key)
    {
        return give()->form_meta->get_meta($this->formV2->id, $key, true);
    }
}

```
