The WordPress payment processing library is intended to make payments and integrations with payment providers easier to set up and maintain within WordPress. It has similarities to libraries like https://github.com/Payum/Payum and https://github.com/thephpleague/omnipay, but is more focused on WordPress. The code complies with the WordPress Coding Standards and the WordPress APIs are used.
wp pay payment status $( wp post list --field=ID --post_type=pronamic_payment --post_status=payment_pending --order=ASC --orderby=date --posts_per_page=100 --paged=1 )
\add_filter(
'pronamic_payment_gateway_configuration_id',
/**
* Filter the payment gateway configuration ID to use specific
* gateways for certain WooCommerce billing countries.
*
* @param int $configuration_id Gateway configuration ID.
* @param Payment $payment The payment resource data.
* @return int Gateway configuration ID.
*/
function( $configuration_id, $payment ) {
if ( 'woocommerce' !== $payment->get_source() ) {
return $configuration_id;
}
$billing_address = $payment->get_billing_address();
if ( null === $billing_address ) {
return $configuration_id;
}
$id = $configuration_id;
switch ( $billing_address->get_country_code() ) {
case 'US':
$id = \get_option( 'custom_us_gateway_configuration_id', $id );
break;
case 'AU':
$id = \get_option( 'custom_au_gateway_configuration_id', $id );
break;
}
if ( 'pronamic_gateway' === \get_post_type( $id ) && 'publish' === \get_post_status( $id ) ) {
$configuration_id = $id;
}
return $configuration_id;
},
10,
2
);
\add_filter(
'pronamic_gateway_configuration_display_value',
function( $display_value, $post_id ) {
return \get_post_meta( $post_id, '_pronamic_gateway_display_value', true );
},
10,
2
);
\add_filter(
'pronamic_gateway_configuration_display_value_payvision',
function( $display_value, $post_id ) {
return \get_post_meta( $post_id, '_pronamic_gateway_payvision_business_id', true );
},
10,
2
);