Payment Gateways: Hide PayPal When Autoship Products Are In the Cart
Uses the function 'autoship_cart_has_valid_autoship_items' to hide PayPal as a payment option when 1 or more products that are scheduled for Autoship are in the cart.
Important: Always test customizations to your site on a staging environment before making changes to your live / production site. If you are not experienced with testing changes on a staging site, here is a good article to review.
/**
* Disable Paypal Express when 1+ Autoship Items are in the cart.
* NOTE: This is specific to the WooCommerce Paypal Express Gateway by WooCommerce
*
* @param array $_available_gateways The current available gateways
* @return array The filtered setting.
*/
function xx_hide_paypal_express_on_autoship( $_available_gateways ){
// if Autoship is not installed or no autoship return original else return based on autoship in cart.
if ( function_exists( 'autoship_cart_has_valid_autoship_items' ) && autoship_cart_has_valid_autoship_items() )
unset( $_available_gateways['ppec_paypal'] );
return $_available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'xx_hide_paypal_express_on_autoship', 10, 1 );
Note: The gist uses the woocommerce_available_payment_gateways hook.