????JFIF??x?x????'
Server IP : 104.21.32.1 / Your IP : 216.73.216.145 Web Server : LiteSpeed System : Linux premium151.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 User : tempvsty ( 647) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/tempvsty/pontiacques.org/wp-content/plugins/give/src/Campaigns/ |
Upload File : |
<?php namespace Give\Campaigns; use Give\Campaigns\Actions\AddCampaignFormFromRequest; use Give\Campaigns\Actions\AddNewBadgeToAdminMenuItem; use Give\Campaigns\Actions\ArchiveCampaignFormsAsDraftStatus; use Give\Campaigns\Actions\ArchiveCampaignPagesAsDraftStatus; use Give\Campaigns\Actions\AssociateCampaignPageWithCampaign; use Give\Campaigns\Actions\CreateCampaignPage; use Give\Campaigns\Actions\CreateDefaultCampaignForm; use Give\Campaigns\Actions\FormInheritsCampaignGoal; use Give\Campaigns\Actions\LoadCampaignOptions; use Give\Campaigns\Actions\RedirectLegacyCreateFormToCreateCampaign; use Give\Campaigns\Actions\RenderDonateButton; use Give\Campaigns\Actions\ReplaceGiveFormsCptLabels; use Give\Campaigns\Migrations\Donations\AddCampaignId as DonationsAddCampaignId; use Give\Campaigns\Migrations\MigrateFormsToCampaignForms; use Give\Campaigns\Migrations\P2P\SetCampaignType; use Give\Campaigns\Migrations\RevenueTable\AddCampaignID as RevenueTableAddCampaignID; use Give\Campaigns\Migrations\RevenueTable\AddIndexes; use Give\Campaigns\Migrations\RevenueTable\AssociateDonationsToCampaign; use Give\Campaigns\Migrations\Tables\CreateCampaignFormsTable; use Give\Campaigns\Migrations\Tables\CreateCampaignsTable; use Give\Campaigns\Repositories\CampaignRepository; use Give\DonationForms\Blocks\DonationFormBlock\Controllers\BlockRenderController; use Give\Campaigns\ValueObjects\CampaignPageMetaKeys; use Give\DonationForms\V2\DonationFormsAdminPage; use Give\Framework\Migrations\MigrationsRegister; use Give\Helpers\Hooks; use Give\ServiceProviders\ServiceProvider as ServiceProviderInterface; /** * @since 4.0.0 */ class ServiceProvider implements ServiceProviderInterface { /** * @since 4.0.0 * @inheritDoc */ public function register(): void { give()->singleton('campaigns', CampaignRepository::class); give()->bind(RenderDonateButton::class, function () { return new RenderDonateButton( new BlockRenderController() ); }); $this->registerTableNames(); } /** * @since 4.0.0 * @inheritDoc */ public function boot(): void { $this->registerMenus(); $this->replaceGiveFormsCptLabels(); $this->registerActions(); $this->setupCampaignPages(); $this->registerMigrations(); $this->registerRoutes(); $this->registerCampaignEntity(); $this->registerCampaignBlocks(); $this->setupCampaignForms(); $this->loadCampaignOptions(); $this->addNewBadgeToMenu(); } /** * @since 4.0.0 */ private function registerRoutes() { Hooks::addAction('rest_api_init', Routes\RegisterCampaignRoutes::class); Hooks::addAction('rest_api_init', Routes\GetCampaignsListTable::class, 'registerRoute'); Hooks::addAction('rest_api_init', Routes\DeleteCampaignListTable::class, 'registerRoute'); Hooks::addAction('rest_api_init', Routes\GetCampaignStatistics::class, 'registerRoute'); Hooks::addAction('rest_api_init', Routes\GetCampaignRevenue::class, 'registerRoute'); Hooks::addAction('rest_api_init', Routes\GetCampaignComments::class, 'registerRoute'); } /** * @since 4.0.0 */ private function registerMigrations(): void { give(MigrationsRegister::class)->addMigrations( [ CreateCampaignsTable::class, SetCampaignType::class, CreateCampaignFormsTable::class, MigrateFormsToCampaignForms::class, RevenueTableAddCampaignID::class, AssociateDonationsToCampaign::class, AddIndexes::class, DonationsAddCampaignId::class, ] ); } /** * @since 4.0.0 */ private function registerTableNames(): void { global $wpdb; $wpdb->give_campaigns = $wpdb->prefix . 'give_campaigns'; $wpdb->give_campaign_forms = $wpdb->prefix . 'give_campaign_forms'; } /** * @since 4.0.0 */ private function registerActions(): void { Hooks::addAction('givewp_campaign_updated', ArchiveCampaignFormsAsDraftStatus::class); Hooks::addAction('givewp_campaign_updated', ArchiveCampaignPagesAsDraftStatus::class); Hooks::addAction('givewp_donation_form_creating', FormInheritsCampaignGoal::class); Hooks::addAction('givewp_campaign_page_created', AssociateCampaignPageWithCampaign::class); Hooks::addAction('give_form_duplicated', Actions\AssignDuplicatedFormToCampaign::class, '__invoke', 10, 2); $noticeActions = [ 'givewp_campaign_interaction_notice', 'givewp_campaign_existing_user_intro_notice', ]; foreach ($noticeActions as $metaKey) { register_meta('user', $metaKey, [ 'type' => 'boolean', 'show_in_rest' => true, 'single' => true, ]); } // notices $notices = [ 'givewp_campaign_interaction_notice', 'givewp_campaign_listtable_notice', 'givewp_campaign_form_notice', 'givewp_campaign_settings_notice' ]; foreach ($notices as $name) { add_action('wp_ajax_' . $name, static function () use ($name) { add_user_meta( get_current_user_id(), $name, time(), true ); }); } } /** * @since 4.0.0 */ private function registerMenus() { Hooks::addAction('admin_menu', CampaignsAdminPage::class, 'addCampaignsSubmenuPage', 999); } /** * @since 4.0.0 */ private function replaceGiveFormsCptLabels() { Hooks::addFilter('give_forms_labels', ReplaceGiveFormsCptLabels::class); } private function setupCampaignPages() { Hooks::addAction('enqueue_block_editor_assets', Actions\EnqueueCampaignPageEditorAssets::class); } /** * @since 4.0.0 */ private function registerCampaignEntity() { Hooks::addAction('init', Actions\RegisterCampaignEntity::class); } /** * @since 4.0.0 */ private function setupCampaignForms() { if (CampaignsAdminPage::isShowingDetailsPage()) { Hooks::addAction('admin_enqueue_scripts', DonationFormsAdminPage::class, 'loadScripts'); } /** * We implemented a feature to load the stats columns ("Goal", "Donations" and "Revenue") using an async approach, * so we could prevent a long page load on websites with lots of forms. However, the campaign details page's current * "Forms" tab still doesn't support it. Still, it's using the same Form List Table that active the async approach by * default, so the line below is necessary to disable it while we still don't have support for async loading on this screen. * * @see https://github.com/impress-org/givewp/pull/7483 */ if (!defined('GIVE_IS_ALL_STATS_COLUMNS_ASYNC_ON_ADMIN_FORM_LIST_VIEWS')) { define('GIVE_IS_ALL_STATS_COLUMNS_ASYNC_ON_ADMIN_FORM_LIST_VIEWS', false); } Hooks::addAction('admin_init', RedirectLegacyCreateFormToCreateCampaign::class); Hooks::addAction('save_post_give_forms', AddCampaignFormFromRequest::class, 'optionBasedFormEditor', 10, 3); Hooks::addAction('givewp_donation_form_created', AddCampaignFormFromRequest::class, 'visualFormBuilder'); Hooks::addAction('givewp_campaign_created', CreateDefaultCampaignForm::class); Hooks::addAction('givewp_campaign_created', CreateCampaignPage::class); } /** * @since 4.0.0 */ private function registerCampaignBlocks() { register_meta('post', CampaignPageMetaKeys::CAMPAIGN_ID, [ 'type' => 'integer', 'description' => 'Campaign ID for GiveWP', 'single' => true, 'show_in_rest' => true, ] ); Hooks::addAction('rest_api_init', Actions\RegisterCampaignIdRestField::class); Hooks::addAction('init', Actions\RegisterCampaignBlocks::class); Hooks::addAction('enqueue_block_editor_assets', Actions\RegisterCampaignBlocks::class, 'loadBlockEditorAssets'); } /** * @since 4.0.0 */ private function loadCampaignOptions() { Hooks::addAction('init', LoadCampaignOptions::class); } /** * @since 4.0.0 * * @return void */ private function addNewBadgeToMenu(): void { (new AddNewBadgeToAdminMenuItem())(); } }