autoship_cart_has_valid_autoship_items (function)
(src/cart.php) This function checks the cart for items selected for Autoship & returns a boolean. It is used to add the Autoship Free Shipping Option in the cart and checkout, and can be used anytime needing to check the cart for items selected for Autoship.
Example: Hide PayPal Checkout Option When Autoship Items are in the Cart
Example: Hide Amazon Pay When Autoship Items In Cart
Example: Display Autoship Supported Gateway Only When Autoship Items in Cart
Code
/** * Checks the cart to see if it's a valid * Autoship cart. By default just one Autoship item * Validates the cart. * * NOTE Developers can override the required number of Autoship items * to make a cart valid using {@see autoship_valid_cart_item_count} * NOTE Developers can override the required Autoship frequency type * required for an item to be counted using {@see autoship_valid_cart_item_frequency} * NOTE Developers can override the required minimum total number of * Valid Autoship items in cart to be valid using {@see autoship_valid_cart_total_min_required} * * @return bool True if the requirement is met. False if not. */ function autoship_cart_has_valid_autoship_items(){ $cart = WC()->cart; // Don't bother if empty or if being called pre-wp loaded if ( empty( $cart ) || !did_action( 'wp_loaded' ) ) return false; // Developers can override the required frequency to be valid. $min_required_frequency = apply_filters( 'autoship_valid_cart_item_min_frequency', 1 ); // Developers can override the required frequency type to be valid. // By default any type is ok. $required_frequency_type = apply_filters( 'autoship_valid_cart_item_frequency', '' ); // Loop through the cart checking for Autoship frequency. $autoship_items_count = 0; foreach ( $cart->get_cart() as $item ) { if ( autoship_item_data_has_valid_schedule( $item, $min_required_frequency, $required_frequency_type ) ) $autoship_items_count++; } return (bool) apply_filters( 'autoship_valid_cart_total_min_required', $autoship_items_count ); }
Example:
function detect_autoship_items(){ return autoship_cart_has_valid_autoship_items() ? print_r("<h3>Autoship Items Detected</h3>") : print_r("<h3>No Autoship Items</h3>"); } add_action( 'woocommerce_before_cart_contents', 'detect_autoship_items', 10, 1 );