| 1 |
<?php |
| 2 |
|
| 3 |
namespace Give\FormMigration\Steps\FormTemplate; |
| 4 |
|
| 5 |
use Give\FormMigration\Actions\MapSettingsToDesignHeader; |
| 6 |
use Give\FormMigration\Actions\MapSettingsToDonationSummary; |
| 7 |
use Give\FormMigration\Contracts\FormMigrationStep; |
| 8 |
use Give\FormMigration\DataTransferObjects\DesignHeaderSettings; |
| 9 |
use Give\FormMigration\DataTransferObjects\DonationSummarySettings; |
| 10 |
|
| 11 |
class ClassicTemplateSettings extends FormMigrationStep |
| 12 |
{ |
| 13 |
public function canHandle(): bool |
| 14 |
{ |
| 15 |
return 'classic' === $this->formV2->getFormTemplate(); |
| 16 |
} |
| 17 |
|
| 18 |
public function process() |
| 19 |
{ |
| 20 |
[ |
| 21 |
'visual_appearance' => $visualAppearance, |
| 22 |
'donation_amount' => $donationAmount, |
| 23 |
'donor_information' => $donorInformation, |
| 24 |
'payment_information' => $paymentInformation, |
| 25 |
'donation_receipt' => $donationReceipt, |
| 26 |
'introduction' => $introduction, |
| 27 |
] = $this->formV2->getFormTemplateSettings(); |
| 28 |
|
| 29 |
$this->visualAppearance($visualAppearance); |
| 30 |
$this->donationAmount($donationAmount); |
| 31 |
$this->donorInformation($donorInformation); |
| 32 |
$this->paymentInformation($paymentInformation); |
| 33 |
$this->donationReceipt($donationReceipt); |
| 34 |
|
| 35 |
// @note the values for 'introduction' are not configurable for this form template. |
| 36 |
} |
| 37 |
|
| 38 |
protected function visualAppearance($settings) |
| 39 |
{ |
| 40 |
[ |
| 41 |
'primary_color' => $primaryColor, //'#1E8CBE', |
| 42 |
'container_style' => $containerStyle, // 'boxed', |
| 43 |
'primary_font' => $primaryFont, // 'Montserrat', |
| 44 |
'display_header' => $displayHeader, //'enabled', |
| 45 |
'main_heading' => $mainHeading, // 'Support Our Cause', |
| 46 |
'description' => $description, // 'Help our organization by donating today! All donations go directly to making a difference for our cause.', |
| 47 |
'header_background_image' => $headerBackgroundImage, // 'http://wordpress.test/wp-content/uploads/2023/04/kbjohnson90_vector_illustration_simple_a_friendly_olive_smiling_4d93434b-e43a-4c90-bcf8-c8fafeb3b9fb.png', |
| 48 |
'header_background_color' => $headerBackgroundColor, //'#1E8CBE', |
| 49 |
'secure_badge' => $secureBadge, // 'enabled', |
| 50 |
'secure_badge_text' => $secureBadgeText, // '100% Secure Donation', |
| 51 |
] = $settings; |
| 52 |
|
| 53 |
MapSettingsToDesignHeader::make($this->formV3) |
| 54 |
->__invoke(new DesignHeaderSettings($displayHeader, $mainHeading, $description)); |
| 55 |
|
| 56 |
$this->formV3->settings->primaryColor = $primaryColor; |
| 57 |
|
| 58 |
// @note What do we do with `secondaryColor` in v3 (which is not a feature of v2)? |
| 59 |
} |
| 60 |
|
| 61 |
protected function donationAmount($donationAmount) |
| 62 |
{ |
| 63 |
[ |
| 64 |
'headline' => $headline, |
| 65 |
'description' => $description, |
| 66 |
] = $donationAmount; |
| 67 |
|
| 68 |
$this->fieldBlocks->findParentByChildName('givewp/donation-amount') |
| 69 |
->setAttribute('title', $headline) |
| 70 |
->setAttribute('description', $description); |
| 71 |
} |
| 72 |
|
| 73 |
protected function donorInformation($settings) |
| 74 |
{ |
| 75 |
[ |
| 76 |
'headline' => $headline, |
| 77 |
'description' => $description, |
| 78 |
] = $settings; |
| 79 |
|
| 80 |
$this->fieldBlocks->findParentByChildName('givewp/donor-name') |
| 81 |
->setAttribute('title', $headline) |
| 82 |
->setAttribute('description', $description); |
| 83 |
} |
| 84 |
|
| 85 |
protected function paymentInformation($settings) |
| 86 |
{ |
| 87 |
[ |
| 88 |
'headline' => $headline, |
| 89 |
'description' => $description, |
| 90 |
'donation_summary_enabled' => $donationSummaryEnabled, |
| 91 |
'donation_summary_heading' => $donationSummaryHeading, |
| 92 |
'donation_summary_location' => $donationSummaryLocation, |
| 93 |
] = $settings; |
| 94 |
|
| 95 |
$this->fieldBlocks->findParentByChildName('givewp/payment-gateways') |
| 96 |
->setAttribute('title', $headline) |
| 97 |
->setAttribute('description', $description); |
| 98 |
|
| 99 |
MapSettingsToDonationSummary::make($this->fieldBlocks) |
| 100 |
->__invoke(DonationSummarySettings::make($settings)); |
| 101 |
} |
| 102 |
|
| 103 |
protected function donationReceipt($settings) |
| 104 |
{ |
| 105 |
[ |
| 106 |
'headline' => $headline, |
| 107 |
'description' => $description, |
| 108 |
] = $settings; |
| 109 |
|
| 110 |
$this->formV3->settings->receiptHeading = $headline; |
| 111 |
$this->formV3->settings->receiptDescription = $description; |
| 112 |
|
| 113 |
// @note `social_sharing`, `sharing_instructions`, `twitter_message` are not supported in v3 forms. |
| 114 |
} |
| 115 |
} |
| 116 |
|