/** * Customize the Subject for wholesalers */ add_filter( ‘woocommerce_email_subject_customer_completed_order’, function( $subject, $order ) { if ( ! $order ) return $subject; $customer_id = $order->get_customer_id(); if ( ! $customer_id ) return $subject; $wholesale_roles = [ ‘wholesale_customer’, ‘wholesale_vip’ ]; $user =…Continue reading
/** * Add custom text to the Completed Order email for wholesale customers only. */ add_action( ‘woocommerce_email_before_order_table’, function( $order, $sent_to_admin, $plain_text, $email ) { // Only target the Completed Order email if ( ‘customer_completed_order’ !== $email->id ) { return; }…Continue reading
/** * Exclude wholesale roles from receiving the PDF Invoice attachment in emails. * * Wholesale Suite roles on this site: * – wholesale_customer (Wholesale Customer) * – wholesale_vip (Wholesale VIP) * * Plugin: WooCommerce PDF Invoices & Packing Slips…Continue reading
/** * ============================================================ * COMPANY DASHBOARD ROUTING (CLEAN + UPDATED) * ============================================================ * URLs: * /{company-slug}/ → /dashboard/?c={company-slug} * /{company-slug}/admin/ → /company-admin/?c={company-slug}&admin=1 * /{company-slug}/login/ → /company-login/?c={company-slug} * * Dashboard page slug: “dashboard” * Admin page slug: “company-admin” * Login page…Continue reading
add_action( ‘woocommerce_before_add_to_cart_form’, ‘roaslink_gestion_premium_v11’, 15 ); function roaslink_gestion_premium_v11() { if ( ! function_exists( ‘is_product’ ) || ! is_product() ) return; global $post; if ( ! $post || ( $post->post_name !== ‘google_ads’ && ! has_term( ‘google_ads’, ‘product_cat’, $post->ID ) ) ) return;…Continue reading
// Cart total AJAX handler add_action(‘wp_ajax_get_cart_total’, ‘ajax_get_cart_total’); add_action(‘wp_ajax_nopriv_get_cart_total’, ‘ajax_get_cart_total’); function ajax_get_cart_total() { WC()->cart->calculate_totals(); $ex_vat_total = 0; $inc_vat_total = 0; foreach (WC()->cart->get_cart() as $cart_item) { $line_total = $cart_item[‘line_total’]; $line_tax = $cart_item[‘line_tax’]; $ex_vat_total += $line_total; $inc_vat_total += $line_total + $line_tax; } echo…Continue reading
/** * Force PayPal Commerce to render only the PayPal button. * Removes Venmo and Credit buttons from the checkout flow. * Also hides Apple Pay, Google Pay buttons and Pay Later messages. * * @link https://wpforms.com/developers/wpforms_wp_footer_end/ */ function wpf_paypal_commerce_single_button()…Continue reading
if ( ! defined( ‘ABSPATH’ ) ) { return; } if ( ! function_exists( ‘rd_countdown_target_datetime’ ) ) { function rd_countdown_target_datetime( $atts = array() ) { $atts = is_array( $atts ) ? $atts : array(); $weekday_raw = isset( $atts[‘weekday’] ) ?…Continue reading
/** * Shortcode: [affwp_network_stats] * * Returns a single network stat for the logged-in affiliate. * Use multiple instances in JetEngine with your own labels. * * Attributes: * type = total_earnings (default) | own_earnings | downline_earnings * | network_count…Continue reading