Server IP : 192.158.238.246 / Your IP : 3.137.159.67 Web Server : LiteSpeed System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64 User : jenniferflocom ( 1321) PHP Version : 8.1.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/7779/task/7779/cwd/plugins/give/src/FormMigration/Steps/ |
Upload File : |
<?php namespace Give\FormMigration\Steps; use Give\FormMigration\Contracts\FormMigrationStep; use Give\Framework\Blocks\BlockModel; class DonationOptions extends FormMigrationStep { public function process() { /** @var BlockModel $amountField */ $amountField = $this->fieldBlocks->findByName('givewp/donation-amount'); $priceOption = $this->getMetaV2('_give_price_option'); $amountField->setAttribute('priceOption', $priceOption); if('set' === $priceOption) { $amountField->setAttribute('setPrice', $this->getMetaV2('_give_set_price')); } if('multi' === $priceOption) { // @note $formV2->levels only returns a single level $donationLevels = $this->getMetaV2('_give_donation_levels'); $isDescriptionEnabled = false; $amountField->setAttribute('levels', array_map(function ($donationLevel) use (&$isDescriptionEnabled) { $isDescriptionEnabled = $isDescriptionEnabled || ! empty($donationLevel['_give_text']); return [ 'value' => $this->roundAmount($donationLevel['_give_amount']), 'label' => $donationLevel['_give_text'], 'checked' => isset($donationLevel['_give_default']) && $donationLevel['_give_default'] === 'default', ]; }, $donationLevels) ); $amountField->setAttribute('descriptionsEnabled', $isDescriptionEnabled); } $isCustomAmountEnabled = $this->formV2->isCustomAmountOptionEnabled(); $amountField->setAttribute('customAmount', $isCustomAmountEnabled); if ($isCustomAmountEnabled) { $customAmountMin = $this->getMetaV2('_give_custom_amount_range_minimum'); $customAmountMax = $this->getMetaV2('_give_custom_amount_range_maximum'); if ($customAmountMin) { $amountField->setAttribute('customAmountMin', $this->roundAmount($customAmountMin)); } if ($customAmountMax) { $amountField->setAttribute('customAmountMax', $this->roundAmount($customAmountMax)); } } // @note No corresponding setting in v3 for "Custom Amount Text" } /** * @since 3.0.0 */ private function roundAmount($amount): float { return round((float)$amount, 2); } }