# give/4.18.0/src/Campaigns/Actions/AssignDuplicatedFormToCampaign.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.18.0. 55 lines.

- Page: https://pluginprobe.com/plugins/give/4.18.0/code/src/Campaigns/Actions/AssignDuplicatedFormToCampaign.php
- Raw: https://pluginprobe.com/plugins/give/4.18.0/raw/src/Campaigns/Actions/AssignDuplicatedFormToCampaign.php
- Modified: 2025-03-31T19:17:16+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.18.0/code/src/Campaigns/Actions/AssignDuplicatedFormToCampaign.php#L10-L20`.

```php
<?php

namespace Give\Campaigns\Actions;

use Give\Campaigns\Repositories\CampaignRepository;
use Give\Log\Log;

/**
 * @since 4.0.0
 */
class AssignDuplicatedFormToCampaign
{
    /**
     * @since 4.0.0
     * @var CampaignRepository
     */
    protected $campaignRepository;

    /**
     * @since 4.0.0
     */
    public function __construct(CampaignRepository $campaignRepository)
    {
        $this->campaignRepository = $campaignRepository;
    }

    /**
     * @since 4.0.0
     */
    public function __invoke($duplicatedFormID, $originalFormID)
    {
        $campaign = $this->campaignRepository->queryByFormId($originalFormID)->get();

        if(!$campaign) {
            Log::error('Campaign does not exist for duplicated form.', [
                'duplicated_form_id' => $duplicatedFormID,
                'original_form_id' => $originalFormID,
            ]);
            return;
        }

        try {
            $this->campaignRepository->addCampaignForm($campaign, $duplicatedFormID, true);
        } catch (\Exception $e) {
            Log::error('Failed to assign duplicated form to campaign.', [
                'campaign_id' => $campaign->id,
                'duplicated_form_id' => $duplicatedFormID,
                'original_form_id' => $originalFormID,
                'error' => $e->getMessage(),
            ]);
            return;
        }
    }
}

```
