Payment Gateways: Hide Amazon Pay When Autoship Products Are In the Cart

Hides the Amazon Pay option when 1 or more products selected 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 Amazon Pay when 1+ Autoship Items are in the cart.
* NOTE: This is specific to the WooCommerce Amazon Pay Gateway by WooCommerce
* @param bool $enable True if Amazon Pay is enabled else false.
* @return bool The filtered setting.
function xx_hide_amazon_pay_on_autoship( $enable ){

    // if Autoship is not installed or no autoship return original else return based on autoship in cart.
    return ( !function_exists( 'autoship_cart_has_valid_autoship_items' ) || !autoship_cart_has_valid_autoship_items() )?
    $enable : !autoship_cart_has_valid_autoship_items();

add_filter( 'woocommerce_amazon_payments_init', 'xx_hide_amazon_pay_on_autoship', 10, 1 );