$85 GRAYBYTE WORDPRESS FILE MANAGER $55

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Campaigns/Actions/

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Campaigns/Actions//DuplicateCampaign.php
<?php

namespace Give\Campaigns\Actions;

use Give\Campaigns\Models\Campaign;
use Give\Campaigns\Models\CampaignPage;
use Give\Campaigns\Repositories\CampaignRepository;
use Give\Campaigns\ValueObjects\CampaignPageStatus;
use Give_Form_Duplicator;

class DuplicateCampaign
{
    /**
     * Duplicate a campaign
     *
     * @since 4.13.1
     */
    public function __invoke(Campaign $campaign): Campaign
    {
        require_once(GIVE_PLUGIN_DIR . '/includes/admin/forms/class-give-form-duplicator.php');

        $forms = $campaign->forms();
        $campaignRepository = give(CampaignRepository::class);

        $campaign->id = null;
        $campaign->title = sprintf(__('%s (copy)', 'give'), $campaign->title);
        $campaign->save();

        foreach ($forms->getAll() as $form) {
            if (! $post = get_post($form->id)) {
                continue;
            }

            $isDefaultForm = $campaign->defaultFormId === $form->id;

            $newFormId = wp_insert_post([
                'comment_status' => $post->comment_status,
                'ping_status' => $post->ping_status,
                'post_author' => get_current_user_id(),
                'post_content' => $post->post_content,
                'post_date_gmt' => current_time('mysql', true),
                'post_excerpt' => $post->post_excerpt,
                'post_name' => $post->post_name,
                'post_parent' => $post->post_parent,
                'post_password' => $post->post_password,
                'post_status' => $isDefaultForm ? 'publish' : 'draft',
                'post_title' => $post->post_title,
                'post_type' => $post->post_type,
                'to_ping' => $post->to_ping,
                'menu_order' => $post->menu_order,
            ]);

            Give_Form_Duplicator::duplicate_taxonomies($newFormId, $post);
            Give_Form_Duplicator::duplicate_meta_data($newFormId, $post);
            Give_Form_Duplicator::reset_stats($newFormId);

            if ($isDefaultForm) {
                $campaign->defaultFormId = $newFormId;
            }

            $campaignRepository->addCampaignForm($campaign, $newFormId, $isDefaultForm);
        }

        if ($campaignPage = CampaignPage::find($campaign->pageId)) {
            $campaignPage->id = null;
            $campaignPage->status = CampaignPageStatus::DRAFT();
            $campaignPage->campaignId = $campaign->id;

            // update campaign id attribute
            $campaignPage->content = preg_replace(
                '/"campaignId":(\d+)/',
                '"campaignId":' . $campaign->id,
                $campaignPage->content
            );

            $campaignPage->save();

            $campaign->pageId = $campaignPage->id;
        }

        $campaign->save();

        return $campaign;
    }
}


Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
AddCampaignFormFromRequest.php
0.962 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
AddNewBadgeToAdminMenuItem.php
1.313 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
AllowGiveRolesToEditCampaignPages.php
5.835 KB
28 Jan 2026 8.00 PM
bravrvjk / bravrvjk
0644
ArchiveCampaignFormsAsDraftStatus.php
1.243 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
ArchiveCampaignPagesAsDraftStatus.php
0.913 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
AssignDuplicatedFormToCampaign.php
1.353 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
AssociateCampaignPageWithCampaign.php
0.477 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
CacheCampaignData.php
5.497 KB
18 Nov 2025 7.37 PM
bravrvjk / bravrvjk
0644
ConvertQueryDataToCampaign.php
1.583 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
CreateCampaignPage.php
0.684 KB
1 May 2025 3.56 PM
bravrvjk / bravrvjk
0644
CreateDefaultCampaignForm.php
1.739 KB
25 Feb 2026 10.24 PM
bravrvjk / bravrvjk
0644
CreateDefaultLayoutForCampaignPage.php
2.121 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
DuplicateCampaign.php
2.754 KB
18 Nov 2025 7.37 PM
bravrvjk / bravrvjk
0644
EnqueueCampaignPageEditorAssets.php
1.586 KB
22 May 2025 12.18 AM
bravrvjk / bravrvjk
0644
FormInheritsCampaignGoal.php
0.643 KB
16 Apr 2025 5.25 PM
bravrvjk / bravrvjk
0644
LoadCampaignAdminOptions.php
2.29 KB
30 Jul 2025 2.55 AM
bravrvjk / bravrvjk
0644
LoadCampaignDetailsAssets.php
1.147 KB
22 May 2025 12.18 AM
bravrvjk / bravrvjk
0644
LoadCampaignPublicOptions.php
0.653 KB
30 Jul 2025 2.55 AM
bravrvjk / bravrvjk
0644
LoadCampaignsListTableAssets.php
1.854 KB
30 Jul 2025 2.55 AM
bravrvjk / bravrvjk
0644
PreventDeleteDefaultForm.php
1.379 KB
16 Apr 2025 5.25 PM
bravrvjk / bravrvjk
0644
RedirectLegacyCreateFormToCreateCampaign.php
3.97 KB
25 Feb 2026 10.24 PM
bravrvjk / bravrvjk
0644
RegisterCampaignBlocks.php
3.059 KB
9 Dec 2025 1.09 AM
bravrvjk / bravrvjk
0644
RegisterCampaignIdRestField.php
0.887 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
RegisterCampaignShortcodes.php
1.606 KB
20 Aug 2025 6.13 PM
bravrvjk / bravrvjk
0644
RenderDonateButton.php
1.152 KB
10 Sep 2025 5.42 PM
bravrvjk / bravrvjk
0644
ReplaceGiveFormsCptLabels.php
0.412 KB
31 Mar 2025 11.17 PM
bravrvjk / bravrvjk
0644
UnarchiveCampaignFormAsPublishStatus.php
0.689 KB
1 May 2025 3.56 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF