diff --git a/src/blocks/donate/class-wp-rest-newspack-donate-controller.php b/src/blocks/donate/class-wp-rest-newspack-donate-controller.php index de3f9a175..49eef67bf 100644 --- a/src/blocks/donate/class-wp-rest-newspack-donate-controller.php +++ b/src/blocks/donate/class-wp-rest-newspack-donate-controller.php @@ -124,9 +124,15 @@ public function api_process_donation( $request ) { } } + $referer = $request->get_param( '_wp_http_referer' ); + if ( ! $referer ) { + $referer = \wp_get_referer(); + } + $payment_metadata = [ - 'referer' => \wp_get_referer(), + 'referer' => $referer, ]; + if ( class_exists( 'Newspack\NRH' ) && method_exists( 'Newspack\NRH', 'get_nrh_config' ) ) { $nrh_config = \Newspack\NRH::get_nrh_config(); if ( isset( $nrh_config['nrh_salesforce_campaign_id'] ) ) { @@ -134,6 +140,10 @@ public function api_process_donation( $request ) { } } + if ( ! empty( $request->get_param( 'newspack_popup_id' ) ) ) { + $payment_metadata['newspack_popup_id'] = $request->get_param( 'newspack_popup_id' ); + } + $frequency = $request->get_param( 'frequency' ); $full_name = $request->get_param( 'full_name' ); $origin = $request->get_param( 'origin' ); diff --git a/src/blocks/donate/frontend/class-newspack-blocks-donate-renderer-base.php b/src/blocks/donate/frontend/class-newspack-blocks-donate-renderer-base.php index 9ebb827c9..9cd07f0fa 100644 --- a/src/blocks/donate/frontend/class-newspack-blocks-donate-renderer-base.php +++ b/src/blocks/donate/frontend/class-newspack-blocks-donate-renderer-base.php @@ -300,6 +300,11 @@ protected static function render_streamlined_payment_ui( $attributes ) { */ protected static function render_donate_form_input() { ob_start(); + /** + * Action to add custom fields before the form fields of the donation block. + */ + do_action( 'newspack_blocks_donate_before_form_fields' ); + wp_referer_field(); ?> full_name: formValues.full_name, frequency: formValues.donation_frequency, newsletter_opt_in: Boolean( formValues.newsletter_opt_in ), + newspack_popup_id: formValues.newspack_popup_id, + _wp_http_referer: formValues._wp_http_referer, clientId: formValues.cid, origin, additional_fields: additionalFields, diff --git a/src/blocks/donate/types.ts b/src/blocks/donate/types.ts index 144e476d8..01493f87c 100644 --- a/src/blocks/donate/types.ts +++ b/src/blocks/donate/types.ts @@ -20,6 +20,8 @@ export type DonationFormValues = { cid?: string; agree_to_pay_fees?: string; newsletter_opt_in?: string; + newspack_popup_id?: string; + _wp_http_referer?: string; }; export type DonationSettings = {