Vi esto Agregar fragmento de evento de Google Ads a la página de conversión (gracias.php)
Pero tengo una situación diferente. Estoy usando "Procesamiento automático de pedidos de WooCommerce en la página de agradecimiento" y "Redirigir la página de pago de WooCommerce", todos estos están dentro de mi archivo functions.php.
Así es como se ve mi archivo functions.php. Oculté mi sitio con " ********* "
//Auto Complete Processing WooCommerce orders on Thankyou Page add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' ); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); if ( $order->has_status('processing') ) { $order->update_status( 'completed' ); } } // Redirect WooCommerce checkout page to ******************** after the payament add_action( 'woocommerce_thankyou', 'pfwp_redirect_woo_checkout'); function pfwp_redirect_woo_checkout( $order_id ){ $order = wc_get_order( $order_id ); $url = 'https://*********/*********/*********/'; if ( ! $order->has_status( 'failed' ) ) { wp_safe_redirect( $url ); exit; } }Y quiero agregar el fragmento de evento dentro de Gracias por los anuncios de Google.
<!-- Event snippet for Purchase conversion page --> <script> gtag('event', 'conversion', { 'send_to': 'AW-***********/********kDENy8vL4o', 'value': 1.0, 'currency': 'SAR', 'transaction_id': '' }); </script> <!-- End Event snippet for Purchase conversion page -->Debido a que estoy redirigiendo la página de agradecimiento a otra página, ¿se activará el script? ¿O no?
¿Y cómo y dónde agrego el fragmento de evento en functions.php porque tengo mucho código que controla WooCommerce?
Dado que está redirigiendo a otra página, debe agregar el código de conversión en esa página. Para hacer eso, configuré un transitorio para pasar ese valor.
Sus funciones thank_you se pueden combinar.
Esto está probado y debería funcionar para usted.
add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_order' ); function custom_woocommerce_auto_complete_order( $order_id ) { if ( ! $order_id ) { return; } $order = wc_get_order( $order_id ); if ( $order->has_status( 'processing' ) ) { $order->update_status( 'completed' ); } $url = 'https://*******/'; // Your redirect URL. if ( ! $order->has_status( 'failed' ) ) { ob_start(); set_transient( 'wc_order_total_for_google', $order->get_total( 'edit' ), 1 * MINUTE_IN_SECONDS ); wp_safe_redirect( $url ); exit; } } add_action( 'wp_print_footer_scripts', 'dd_add_conversion_code' ); function dd_add_conversion_code() { if ( is_page( your_custom_page_id ) ) { //Set your custom page ID here. if ( false !== get_transient( 'wc_order_total_for_google' ) ) { $order_total = get_transient( 'wc_order_total_for_google' ); ?> <!-- Event snippet for Purchase conversion page --> <script> gtag('event', 'conversion', { 'send_to': 'AW-***********/********kDENy8vL4o', 'value': <?php echo esc_attr( $order_total ); ?>, 'currency': 'SAR', 'transaction_id': '' }); </script> <!-- End Event snippet for Purchase conversion page --> <?php delete_transient( 'wc_order_total_for_google' ); } } }Si agrega su script con el otro tutorial:
add_action( 'woocommerce_thankyou', 'ds_checkout_analytics' );Y su redirección con:
add_action( 'woocommerce_thankyou', 'pfwp_redirect_woo_checkout');Simplemente haga esto para que el seguimiento se active antes de la redirección:
add_action( 'woocommerce_thankyou', 'pfwp_redirect_woo_checkout', 12 ); add_action( 'woocommerce_thankyou', 'ds_checkout_analytics', 11 );Al especificar la "prioridad" del gancho, acabamos de decirle a WordPress que ejecute ds_checkout_analytics() antes que pfwp_redirect_woo_checkout(). La prioridad predeterminada es = 10