PluginProbe
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More / 2.4.1
Better Payment – Instant Payments, Donations, Fundraising with Subscriptions & More v2.4.1
2.4.1 2.4.0 2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.2 2.2.1 2.2.0 2.1.2 2.1.1 trunk 0.0.1 0.0.2 0.0.3 0.0.4 0.0.5 0.0.6 0.0.7 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 All 68 releases
← All changes | includes/Blocks/BlockActions.php +9 -27 2.3.4 → 2.4.1 View file →
@@ -11,8 +11,9 @@
11 11
12 12 namespace Better_Payment\Lite\Blocks;
13 13
14 14 use Better_Payment\Lite\Classes\Handler;
15 +use Better_Payment\Lite\Classes\PaymentEntitlement;
15 16 use Better_Payment\Lite\Classes\PaymentRequestGuard;
16 17 use Better_Payment\Lite\Traits\Helper as TraitsHelper;
17 18
18 19 if ( ! defined( 'ABSPATH' ) ) {
@@ -233,11 +234,8 @@
233 234 $woo_product_id = ! empty( $el_settings['better_payment_form_woocommerce_product_id'] ) ? intval( $el_settings['better_payment_form_woocommerce_product_id'] ) : 0;
234 235 $woo_product_ids = ! empty( $el_settings['better_payment_form_woocommerce_product_ids'] ) ? $el_settings['better_payment_form_woocommerce_product_ids'] : array( 0 );
235 236 $fluentcart_product_id = ! empty( $el_settings['better_payment_form_fluentcart_product_id'] ) ? intval( $el_settings['better_payment_form_fluentcart_product_id'] ) : 0;
236 237 $fluentcart_product_ids = ! empty( $el_settings['better_payment_form_fluentcart_product_ids'] ) ? $el_settings['better_payment_form_fluentcart_product_ids'] : array( 0 );
237 - $is_layout_6 = ! empty( $el_settings['better_payment_form_layout'] ) && 'layout-6-pro' === $el_settings['better_payment_form_layout'];
238 - $is_fluentcart_layout = $is_layout_6 && ! empty( $el_settings['better_payment_form_layout_6_ecommerce_platform'] ) && 'fluentcart' === $el_settings['better_payment_form_layout_6_ecommerce_platform'];
239 - $is_woo_layout = $is_layout_6 && ( empty( $el_settings['better_payment_form_layout_6_ecommerce_platform'] ) || 'woocommerce' === $el_settings['better_payment_form_layout_6_ecommerce_platform'] );
240 238
241 239 // phpcs:disable WordPress.Security.NonceVerification.Missing
242 240 // Amount, quantity, currency and campaign come from the stored settings, never
243 241 // from the request — see PaymentRequestGuard.
@@ -298,16 +296,19 @@
298 296 'fluentcart_product_id' => $fluentcart_product_id,
299 297 'fluentcart_product_ids' => maybe_serialize( $fluentcart_product_ids ),
300 298 'source' => 'paypal',
301 299 'amount_quantity' => ! empty( $primary_payment_amount_quantity ) ? intval( $primary_payment_amount_quantity ) : '',
302 - 'is_woo_layout' => $is_woo_layout,
303 - 'is_fluentcart_layout' => $is_fluentcart_layout,
304 300 'detailed_product_info' => maybe_serialize( $detailed_product_info ),
305 301 'paypal_business_email' => sanitize_email( $el_settings['better_payment_paypal_business_email'] ),
302 + // The PayPal environment the order was sent to; the IPN must come from the same one.
303 + 'paypal_mode' => 'yes' === $el_settings['better_payment_paypal_live_mode'] ? 'live' : 'sandbox',
306 304 // Persisted so the async PayPal IPN can rebuild the e-mail body + on/off toggle.
307 305 'email_settings' => Handler::extract_email_settings( $el_settings ),
308 306 );
309 307
308 + // Fields only Pro's forms store (layout 6's platform flags) — see PaymentEntitlement.
309 + $better_form_fields = PaymentEntitlement::transaction_fields( $better_form_fields, $el_settings );
310 +
310 311 $better_form_fields = array_merge( $better_form_fields, $this->fetch_better_form_fields( $el_settings, $_POST ) );
311 312
312 313 if ( ! empty( $better_form_fields['primary_first_name'] ) ) {
313 314 $request_data['primary_first_name'] = sanitize_text_field( $better_form_fields['primary_first_name'] );
@@ -879,31 +880,12 @@
879 880 $post_data_primary_email = '';
880 881
881 882 $post_fields = $post_data_form_fields;
882 883
883 - $layout = ! empty( $el_settings['better_payment_form_layout'] ) ? sanitize_text_field( $el_settings['better_payment_form_layout'] ) : 'layout-1';
884 + // The fields repeater a Pro form renders is Pro's to name — see PaymentEntitlement.
885 + $form_fields = PaymentEntitlement::form_fields( $el_settings );
884 886
885 - // Handle different layouts.
886 - switch ( $layout ) {
887 - case 'layout-4-pro':
888 - $el_settings['better_payment_form_fields'] = isset( $el_settings['better_payment_form_fields_layout_4_5_6'] ) ? $el_settings['better_payment_form_fields_layout_4_5_6'] : array();
889 - break;
890 -
891 - case 'layout-5-pro':
892 - $el_settings['better_payment_form_fields'] = isset( $el_settings['better_payment_form_fields_layout_4_5_6_desc'] ) ? $el_settings['better_payment_form_fields_layout_4_5_6_desc'] : array();
893 - break;
894 -
895 - case 'layout-6-pro':
896 - $el_settings['better_payment_form_fields'] = isset( $el_settings['better_payment_form_fields_layout_4_5_6_woo'] ) ? $el_settings['better_payment_form_fields_layout_4_5_6_woo'] : array();
897 - break;
898 -
899 - default:
900 - break;
901 - }
902 -
903 - $form_fields = isset( $el_settings['better_payment_form_fields'] ) ? $el_settings['better_payment_form_fields'] : array();
904 -
905 - if ( ! empty( $form_fields ) && is_array( $form_fields ) ) {
887 + if ( ! empty( $form_fields ) ) {
906 888 foreach ( $form_fields as $form_field ) {
907 889 $field_type = ! empty( $form_field['better_payment_primary_field_type'] ) ? sanitize_text_field( $form_field['better_payment_primary_field_type'] ) : '';
908 890 $field_name = ! empty( $form_field['better_payment_field_name_heading'] ) ? sanitize_text_field( $form_field['better_payment_field_name_heading'] ) : '';
909 891