使用下面的function即可自動解析 utm_source, utm_medium, utm_campaign 等資訊,並寫入訂單的管理備註
// Start session function start_session() { if( !session_id() ) { session_start(); } } add_action('init', 'start_session', 1); // Save UTM parameters in session function save_utm_parameters() { if( isset($_GET['utm_source']) ) { $_SESSION['utm_source'] = sanitize_text_field($_GET['utm_source']); } if( isset($_GET['utm_medium']) ) { $_SESSION['utm_medium'] = sanitize_text_field($_GET['utm_medium']); } if( isset($_GET['utm_campaign']) ) { $_SESSION['utm_campaign'] = sanitize_text_field($_GET['utm_campaign']); } } add_action('wp', 'save_utm_parameters'); // Add UTM parameters to order notes function add_utm_to_order_notes( $order_id ) { if( isset($_SESSION['utm_source']) || isset($_SESSION['utm_medium']) || isset($_SESSION['utm_campaign']) ) { $order = wc_get_order( $order_id ); $utm_note = 'UTM Parameters: '; if( isset($_SESSION['utm_source']) ) { $utm_note .= 'Source: ' . $_SESSION['utm_source'] . ' '; } if( isset($_SESSION['utm_medium']) ) { $utm_note .= 'Medium: ' . $_SESSION['utm_medium'] . ' '; } if( isset($_SESSION['utm_campaign']) ) { $utm_note .= 'Campaign: ' . $_SESSION['utm_campaign']; } $order->add_order_note( $utm_note ); // Clear session after adding to order note unset($_SESSION['utm_source']); unset($_SESSION['utm_medium']); unset($_SESSION['utm_campaign']); } } add_action('woocommerce_checkout_update_order_meta', 'add_utm_to_order_notes');