Quiero agregar datalayer.push en WordPress functions.php, probé el siguiente código pero arroja un error, Error no detectado: Llamar a una función miembro get_id() en una cadena...
add_action('wp_head', 'datalayer_push'); function datalayer_push($product) { ?> <script> window.dataLayer = window.dataLayer || []; dataLayer.push({ 'itemId': '<?php echo $product->get_id(); ?>' }); </script> <?php }¿Cómo implementar correctamente el código datalayer.push en functions.php?
Tiene un error porque no hay una variable $product en wp_head de forma predeterminada. Para que tu código funcione, tienes que reescribirlo así:
add_action('wp_head', 'datalayer_push'); function datalayer_push($product) { // Do not do anything if the current page is not a single product page if ( ! is_product() ) { return; } global $post; $product_id = $post->ID; $product = wc_get_product( $product_id ); ?> <script> window.dataLayer = window.dataLayer || []; dataLayer.push({ 'itemId': '<?php echo $product->get_id(); ?>' }); </script> <?php }