
brunam
Estoy buscando conectarme al filtro ‘woocommerce_cart_item_name’ en woocommerce y me gustaría mostrar la identificación del producto después del nombre. Estoy trabajando con esto hasta ahora…
add_filter( 'woocommerce_cart_item_name', 'justatest' );
function justatest( $productname ) {
echo $productname;
// ideally echo name and product id here instead
}
Esto devuelve el nombre con un enlace alrededor, pero quiero agregar la identificación real del producto después del nombre del artículo.
¿Cómo puedo agregar la identificación del producto después del nombre del artículo del carrito en la página del carrito de Woocommerce?
Sé que no tendría que regresar primero, ya que eso me sacaría de la función, pero tengo curiosidad por saber cómo lo haría.

LoicTheAztec
Faltan algunos argumentos en su función enganchada y debería hacer algunos cambios para obtener la identificación del producto de esta manera:
add_filter( 'woocommerce_cart_item_name', 'just_a_test', 10, 3 );
function just_a_test( $item_name, $cart_item, $cart_item_key ) {
// Display name and product id here instead
echo $item_name.' ('.$cart_item['product_id'].')';
}
Este código va en el archivo function.php de su tema secundario activo (o tema) o también en cualquier archivo de complemento.
Probado y funciona.
Prueba este,
anular la siguiente plantilla de página de woocommerce,
woocommerce/cart/cart.php in your theme
encontrará una tabla HTML/código en ella.
<td class="product-name" data-title="<?php esc_attr_e('Product', 'woocommerce'); ?>"
<?php
if (!$product_permalink) {
echo apply_filters('woocommerce_cart_item_name', $_product->get_name(). $product_id, $cart_item, $cart_item_key) . ' ';
} else {
echo apply_filters('woocommerce_cart_item_name', sprintf('<a href="https://stackoverflow.com/questions/47917304/%s">%s</a>', esc_url($product_permalink), $_product->get_name() . $product_id), $cart_item, $cart_item_key);
}
// Meta data
echo WC()->cart->get_item_data($cart_item);
// Backorder notification
if ($_product->backorders_require_notification() && $_product->is_on_backorder($cart_item['quantity'])) {
echo '<p class="backorder_notification">' . esc_html__('Available on backorder', 'woocommerce') . '</p>';
}
?>
</td>
añadir esta parte en carrito.php
<td class="product-name">...</td>
Espero que esto te ayude.