Skip to content

Commit

Permalink
identical payment method selection for fs and others
Browse files Browse the repository at this point in the history
  • Loading branch information
liedekef committed Aug 20, 2024
1 parent e4fce0f commit f901d59
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 68 deletions.
44 changes: 21 additions & 23 deletions eme-events.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,14 +143,20 @@ function eme_init_event_props( $props = [] ) {
$props['rsvp_password'] = '';
}

$payment_gateways = eme_payment_gateways();
foreach ( array_keys($payment_gateways) as $pg ) {
// the properties for payment gateways alsways have "use_" in front of them, so add it
if ( ! isset( $props[ 'use_' . $pg ] ) ) {
$props[ 'use_' . $pg ] = 0;
} else {
$props[ 'use_' . $pg ] = intval( $props[ 'use_' . $pg ] );
$payment_gateways = eme_get_configured_pgs();
if (isset($props['payment_gateways'])) {
$props['payment_gateways'] = array_intersect($props['payment_gateways'],$payment_gateways);
} else {
$props['payment_gateways'] = [];
foreach ( $payment_gateways as $pg ) {
if ( ! empty( $props[ 'use_' . $pg ] ) )
$props['payment_gateways'][] = $pg;
// remove old-style pg
if ( isset( $props[ 'use_' . $pg ] ))
unset( $props[ 'use_' . $pg ]);
}
if ($new_event && count($payment_gateways) == 1 )
$props['payment_gateways'] = [$payment_gateways[0]];
}

if ( ! isset( $props['cancel_rsvp_days'] ) ) {
Expand Down Expand Up @@ -8570,22 +8576,14 @@ function eme_meta_box_div_event_payment_methods( $event, $is_new_event ) {
?>
</p>
<p id='span_payment_methods'>
<?php
$configured_pgs = eme_get_configured_pgs();
$count_configured_pgs = count( $configured_pgs );
$pg_descriptions = eme_payment_gateways();
foreach ( $configured_pgs as $pg ) {
// if it is a new event and there's only one pg configured, select it by default
if ( $is_new_event && $count_configured_pgs == 1 ) {
$event['event_properties'][ 'use_' . $pg ] = 1;
}
echo eme_ui_checkbox_binary( $event['event_properties'][ 'use_' . $pg ], 'eme_prop_use_' . $pg, $pg_descriptions[$pg] );
echo '<br>';
}
if ( empty( $configured_pgs ) ) {
esc_html_e( 'No payment methods configured yet. Go in the EME payment settings and configure some.', 'events-made-easy' );
}
?>
<?php
echo eme_ui_multiselect( $event['event_properties']['payment_gateways'], 'eme_prop_payment_gateways', eme_configured_pgs_descriptions(), 5, '', 0, 'eme_select2_width50_class' );

$configured_pgs = eme_get_configured_pgs();
if ( empty( $configured_pgs ) ) {
esc_html_e( 'No payment methods configured yet. Go in the EME payment settings and configure some.', 'events-made-easy' );
}
?>
</p>
<p id='span_skippaymentoptions'>
<?php esc_html_e( 'Skip payment methods after booking', 'events-made-easy' ); ?><br>
Expand Down
1 change: 1 addition & 0 deletions eme-functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -4025,6 +4025,7 @@ function eme_get_configured_captchas() {
return $captchas;
}

// easy function that allows transition from old use_* properties for captcha to newer
function eme_get_selected_captcha($properties) {
$selected_captcha = '';
if (isset($properties['selected_captcha']))
Expand Down
36 changes: 16 additions & 20 deletions eme-members.php
Original file line number Diff line number Diff line change
Expand Up @@ -184,14 +184,20 @@ function eme_init_membership_props( $props = [] ) {
$props[$opt]=intval($props[$opt]);
}

$payment_gateways = eme_payment_gateways();
foreach ( array_keys($payment_gateways) as $pg ) {
// the properties for payment gateways alsways have "use_" in front of them, so add it
if ( ! isset( $props[ 'use_' . $pg ] ) ) {
$props[ 'use_' . $pg ] = 0;
} else {
$props[ 'use_' . $pg ] = intval( $props[ 'use_' . $pg ] );
}
$payment_gateways = eme_get_configured_pgs();
if (isset($props['payment_gateways'])) {
$props['payment_gateways'] = array_intersect($props['payment_gateways'],$payment_gateways);
} else {
$props['payment_gateways'] = [];
foreach ( $payment_gateways as $pg ) {
if ( ! empty( $props[ 'use_' . $pg ] ) )
$props['payment_gateways'][] = $pg;
// remove old-style pg
if ( isset( $props[ 'use_' . $pg ] ))
unset( $props[ 'use_' . $pg ]);
}
if ($new_membership && count($payment_gateways) == 1 )
$props['payment_gateways'] = [$payment_gateways[0]];
}

if ( ! isset( $props['new_subject_format'] ) ) {
Expand Down Expand Up @@ -2159,22 +2165,12 @@ function eme_meta_box_div_membershipdetails( $membership, $is_new_membership ) {
<?php
esc_html_e( 'If no payment method is selected, the "Member Added Message" will be shown. Otherwise the "Member Added Message" will be shown and after some seconds the user gets redirected to the payment page (see the generic EME settings on the redirection timeout and more payment settings).', 'events-made-easy' );
echo '<br>';
$configured_pgs = eme_get_configured_pgs();
$count_configured_pgs = count( $configured_pgs );
$pg_descriptions = eme_payment_gateways();
foreach ( $configured_pgs as $pg ) {
// if it is a new membership and there's only one pg configured, select it by default
if ( $is_new_membership && $count_configured_pgs == 1 ) {
$membership['properties'][ 'use_' . $pg ] = 1;
}
echo eme_ui_checkbox_binary( $membership['properties'][ 'use_' . $pg ], 'properties[use_' . $pg . ']', $pg_descriptions[$pg] );
echo '<br>';
}
echo eme_ui_multiselect( $membership['properties']['payment_gateways'], eme_get_field_name('properties','payment_gateways'), eme_configured_pgs_descriptions(), 5, '', 0, 'eme_select2_width50_class' );

$configured_pgs = eme_get_configured_pgs();
if ( empty( $configured_pgs ) ) {
esc_html_e( 'No payment methods configured yet. Go in the EME payment settings and configure some.', 'events-made-easy' );
}

?>
<p class='eme_smaller'><?php esc_html_e( 'If one or more payment methods are selected, the person signing up will be redirected to a payment page. In that case, make sure to check the different payment templates defined for this membership.', 'events-made-easy' ); ?></p>
</td>
Expand Down
40 changes: 18 additions & 22 deletions eme-payments.php
Original file line number Diff line number Diff line change
Expand Up @@ -221,9 +221,9 @@ function eme_event_payment_form( $payment_id, $resultcode = 0, $standalone = 0 )
}

$ret_string .= "<div id='eme-payment-form' class='eme-payment-form $hidden_class'>";
$pgs = eme_payment_gateways();
$pgs = eme_configured_pgs_descriptions();
foreach ( $pgs as $pg => $value ) {
if ( $event['event_properties'][ 'use_' . $pg ] ) {
if ( isset($event['event_properties']['payment_gateways']) && in_array($pg, $event['event_properties']['payment_gateways']) ) {
if ( eme_is_offline_pg( $pg ) ) {
$eme_offline_format = get_option( 'eme_offline_payment' );
$result = eme_replace_booking_placeholders( $eme_offline_format, $event, $booking, $is_multi );
Expand Down Expand Up @@ -352,9 +352,9 @@ function eme_member_payment_form( $payment_id, $resultcode = 0, $standalone = 0
}
$ret_string .= "<div id='eme-payment-form' class='eme-payment-form $hidden_class'>";
$is_multi = 0;
$pgs = eme_payment_gateways();
$pgs = eme_configured_pgs_descriptions();
foreach ( $pgs as $pg => $value ) {
if ( $membership['properties'][ 'use_' . $pg ] ) {
if ( isset($membership['properties']['payment_gateways']) && in_array($pg, $membership['properties']['payment_gateways']) ) {
if ( eme_is_offline_pg( $pg ) ) {
if ( ! eme_is_empty_string( $membership['properties']['offline_payment_text'] ) ) {
$eme_offline_format = $membership['properties']['offline_payment_text'];
Expand Down Expand Up @@ -469,7 +469,7 @@ function eme_fs_event_payment_form( $payment_id, $resultcode = 0, $standalone =
}
$ret_string .= "<div id='eme-payment-form' class='eme-payment-form $hidden_class'>";
$is_multi = 0;
$pgs = eme_payment_gateways();
$pgs = eme_configured_pgs_descriptions();
foreach ( $pgs as $pg => $value ) {
if ( isset($eme_fs_options['payment_gateways']) && in_array($pg, $eme_fs_options['payment_gateways']) ) {
if ( eme_is_offline_pg( $pg ) ) {
Expand Down Expand Up @@ -3270,47 +3270,43 @@ function eme_event_can_pay_online( $event ) {
return eme_event_has_pgs_configured( $event );
}
function eme_event_has_pgs_configured( $event ) {
$pgs = eme_get_configured_pgs();
foreach ( $pgs as $pg ) {
if ( $event['event_properties'][ 'use_' . $pg ] ) {
return 1;
}
if ( !empty($event['event_properties']['payment_gateways'] )) {
return 1;
}
return 0;
}
function eme_membership_can_pay_online( $membership ) {
return eme_membership_has_pgs_configured( $membership );
}
function eme_membership_has_pgs_configured( $membership ) {
$pgs = eme_get_configured_pgs();
foreach ( $pgs as $pg ) {
if ( $membership['properties'][ 'use_' . $pg ] ) {
return 1;
}
if ( !empty($membership['properties']['payment_gateways'] )) {
return 1;
}
return 0;
}

function eme_event_count_pgs( $event ) {
// count the payment gateways active for this event
if (empty($event['event_properties']['payment_gateways']) || !is_array($event['event_properties']['payment_gateways']))
return 0;
$pgs = eme_get_configured_pgs();
$pg_count = 0;
foreach ( $pgs as $pg ) {
if ( $event['event_properties'][ 'use_' . $pg ] ) {
//if ($pg != "offline") {
if ( in_array($pg, $event['event_properties']['payment_gateways']) ) {
++$pg_count;
//}
}
}
return $pg_count;
}

function eme_membership_count_pgs( $membership ) {
// count the payment gateways active for this event
if (empty($membership['properties']['payment_gateways']) || !is_array($membership['properties']['payment_gateways']))
return 0;
$pgs = eme_get_configured_pgs();
$pg_count = 0;
foreach ( $pgs as $pg ) {
if ( $membership['properties'][ 'use_' . $pg ] ) {
if ( in_array($pg, $membership['properties']['payment_gateways']) ) {
++$pg_count;
}
}
Expand All @@ -3332,7 +3328,7 @@ function eme_fs_event_count_pgs( ) {
function eme_event_get_first_pg( $event ) {
$pgs = eme_get_configured_pgs();
foreach ( $pgs as $pg ) {
if ( $event['event_properties'][ 'use_' . $pg ] ) {
if ( !empty($event['event_properties']['payment_gateways']) && in_array($pg, $event['event_properties']['payment_gateways']) ) {
return $pg;
}
}
Expand All @@ -3342,7 +3338,7 @@ function eme_event_get_first_pg( $event ) {
function eme_membership_get_first_pg( $membership ) {
$pgs = eme_get_configured_pgs();
foreach ( $pgs as $pg => $value ) {
if ( $membership['properties'][ 'use_' . $pg ] ) {
if ( !empty($membership['properties']['payment_gateways']) && in_array($pg, $membership['properties']['payment_gateways']) ) {
return $pg;
}
}
Expand All @@ -3353,7 +3349,7 @@ function eme_fs_event_get_first_pg( ) {
$eme_fs_options = get_option('eme_fs');
$pgs = eme_get_configured_pgs();
foreach ( $pgs as $pg => $value ) {
if ( isset($eme_fs_options['payment_gateways']) && in_array($pg, $eme_fs_options['payment_gateways']) ) {
if ( !empty($eme_fs_options['payment_gateways']) && in_array($pg, $eme_fs_options['payment_gateways']) ) {
return $pg;
}
}
Expand Down
8 changes: 5 additions & 3 deletions eme-rsvp.php
Original file line number Diff line number Diff line change
Expand Up @@ -955,7 +955,7 @@ function eme_add_bookings_ajax() {

// let's decide for the first event wether or not payment is needed
if ( $payment_id && eme_event_has_pgs_configured( $event ) && ! $event['event_properties']['skippaymentoptions'] && ! $event['event_properties']['require_user_confirmation'] ) {
if ( $event['event_properties']['use_captcha'] ) {
if ( $event['event_properties']['selected_captcha'] == "captcha" ) {
eme_captcha_remove( $captcha_res );
}
$total_price = eme_get_payment_price( $payment_id );
Expand Down Expand Up @@ -1049,7 +1049,7 @@ function eme_add_bookings_ajax() {
}
}
} elseif ( $payment_id ) {
if ( $event['event_properties']['use_captcha'] ) {
if ( $event['event_properties']['selected_captcha'] == "captcha" ) {
eme_captcha_remove( $captcha_res );
}
// the booking is done, so if wanted let's indicate we want to show the form again
Expand Down Expand Up @@ -1192,7 +1192,9 @@ function eme_cancel_bookings_ajax() {
} else {
$form_html = __( 'There are no bookings associated to this name and email', 'events-made-easy' );
}
eme_captcha_remove ( $captcha_res );
if ( $event['event_properties']['selected_captcha'] == "captcha" ) {
eme_captcha_remove ( $captcha_res );
}
echo wp_json_encode(
[
'Result' => 'OK',
Expand Down

0 comments on commit f901d59

Please sign in to comment.