This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Debug code for iDEAL refund issue | |
* | |
* This file contains diagnostic code to help identify why the iDEAL refund | |
* option is missing in WooCommerce Stripe Gateway. Add this to your theme's | |
* functions.php to see the debugging output in the HTML source. | |
*/ | |
// Debug code to check if iDEAL gateway is properly registered | |
add_action('init', function() { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Solution for WooCommerce Stripe iDEAL Refund | |
* | |
* This code adds a "Refund via iDEAL" button to WooCommerce orders paid with iDEAL, | |
* even when the Stripe gateway isn't properly registered. | |
*/ | |
add_action('woocommerce_order_item_add_action_buttons', function($order) { | |
if ($order->get_payment_method() !== 'stripe_ideal') { | |
return; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Fix for WooCommerce login form Enter key not working when registration is disabled | |
* This is a temporary fix until WooCommerce 9.9.9 is released (June 2, 2025) | |
*/ | |
function fix_woocommerce_login_enter_key() { | |
// Only add this script on pages that might have the login form | |
if (!is_account_page() && !is_checkout()) { | |
return; | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Exempt product variations from object caching to fix variation selection buttons | |
* | |
* This fixes an issue where variation buttons disappear when object caching is enabled | |
* on Pressable or any other hosting. | |
*/ | |
add_filter('advanced_post_cache_skip_for_post_type', 'oleomontreal_exempt_variations_from_cache', 10, 2); | |
function oleomontreal_exempt_variations_from_cache($return_me, $post_type) { | |
$exempted = array('product_variation'); | |
if (in_array($post_type, $exempted)) { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add_filter( 'action_scheduler_retention_period', 'wc_action_scheduler_purge' ); | |
/** | |
* Change Action Scheduler default purge to 1 week | |
*/ | |
function wc_action_scheduler_purge() { | |
return WEEK_IN_SECONDS; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Generate a coupon when a specific product is purchased and email it to the customer. | |
* @param AutomateWoo\Workflow $workflow | |
*/ | |
function my_automatewoo_generate_coupon( $workflow ) { | |
$order = $workflow->data_layer()->get_order(); | |
if ( ! $order ) { | |
return; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Shortcode: [all_attribute_terms attribute="pa_size"] | |
* Shows all terms for a product attribute, even if not assigned to products. | |
* Links use WooCommerce's layered nav filter format. | |
*/ | |
function show_all_attribute_terms( $atts ) { | |
$atts = shortcode_atts( [ | |
'attribute' => '', | |
], $atts ); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add_filter( 'woocommerce_package_rates', 'keep_only_lowest_distance_rate', 20, 2 ); | |
function keep_only_lowest_distance_rate( $rates, $package ) { | |
$lowest_rate_key = ''; | |
$lowest_cost = null; | |
foreach ( $rates as $rate_key => $rate ) { | |
if ( is_null( $lowest_cost ) || floatval( $rate->cost ) < $lowest_cost ) { | |
$lowest_cost = floatval( $rate->cost ); | |
$lowest_rate_key = $rate_key; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
add_action( 'woocommerce_cart_calculate_fees', function() { | |
if ( wcs_cart_contains_renewal() ) { | |
return; | |
} | |
$subscription_box_id = 54; | |
$cart_contents = WC()->cart->get_cart_contents(); | |
foreach ( WC()->cart->get_cart() as $cart_item ) { | |
if ( empty( $cart_item[ 'wcsatt_data'][ 'active_subscription_scheme' ] ) ) { | |
continue; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Add custom view for products without a vendor | |
add_filter( 'views_edit-product', function( $views ) { | |
$class = ( isset($_GET['no_vendor']) && $_GET['no_vendor'] == 1 ) ? 'current' : ''; | |
$url = add_query_arg( 'no_vendor', '1', admin_url( 'edit.php?post_type=product' ) ); | |
$views['no_vendor'] = "<a href='{$url}' class='{$class}'>No Vendor</a>"; | |
return $views; | |
}); | |
// Modify the query to show products without vendor when selected | |
add_action( 'pre_get_posts', function( $query ) { |
NewerOlder