add_action('woocommerce_order_status_processing', function($order_id) { $order = wc_get_order($order_id); if (! $order) return; foreach ($order->get_items() as $item_id => $item) { $product = $item->get_product(); if (!$product) continue; $product_id = $product->get_id(); $manage_stock = get_post_meta($product_id, '_manage_stock', true); $stock_status = get_post_meta($product_id, '_stock_status', true); if ($manage_stock === 'no' && $stock_status === 'instock') { $replacement_id = get_post_meta($product_id, '_replacement_product_id', true); if ($replacement_id) { $replacement_product = wc_get_product($replacement_id); if (!$replacement_product) continue; ob_start(); do_action('woocommerce_email_header', 'Upgrade Available for Your Recent Order'); echo '

Hi ' . esc_html($order->get_billing_first_name()) . ',

Thanks for your order! One of the items you ordered, ' . esc_html($product->get_name()) . ', has a better version available: ' . esc_html($replacement_product->get_name()) . '.

We’d like to send you this upgraded item at no extra cost. Let us know if that works for you!

Thanks again,
The Canbat Team

12V Lithium Batteries - LiFePO4 - Free Shipping - 24/7 Support - Canada

12V Lithium Batteries

You are here:
Go to Top
CAD Canadian dollar
'; echo ''; echo ''; echo ''; do_action('woocommerce_email_footer'); $message = ob_get_clean(); $to = $order->get_billing_email(); $subject = 'Upgrade Available for Your Recent Order'; $headers = array('Content-Type: text/html; charset=UTF-8'); wp_mail($to, $subject, $message, $headers); $order->add_order_note("Sent upgrade offer for {$product->get_name()} → {$replacement_product->get_name()} to customer."); } else { $support_email = 'support@canbat.com'; $subject = 'No Replacement Defined for Out-of-Stock Item'; $headers = array('Content-Type: text/html; charset=UTF-8'); $message = 'Order #' . $order_id . ' contains an out-of-stock item (' . $product->get_name() . ') with no replacement defined.'; wp_mail($support_email, $subject, $message, $headers); $order->add_order_note("Support notified for missing replacement for {$product->get_name()}."); } } } });