Tengo una configuración avanzada de campos personalizados para el tipo de publicación en los productos de WooCommerce. Entonces, cada producto tiene 1 campo personalizado único.
Estoy tratando de mostrar el campo personalizado después del nombre del producto en el carrito y la página de pago y la información de la tabla de pedidos.
Sin embargo, tengo problemas ya que mi código no muestra ningún resultado.
Cualquier consejo sobre cómo lograr esto sería muy apreciado. Gracias
// Display the ACF custom field 'location' after the product title on cart / checkout page. function cart_item_custom_feild( $cart_item ) { $address = get_field( 'location', $cart_item['product_id'] ); echo "<div>Address: $address.</div>"; } add_action( 'woocommerce_after_cart_item_name', 'cart_item_custom_feild', 10, 1 ); También probé the_field en lugar de get_field
Si necesita ejecutarlo tanto en la página del carrito como en la tabla de revisión de pedidos en la página de pago, puede usar woocommerce_cart_item_name , como este:
add_filter('woocommerce_cart_item_name', 'order_review_custom_field', 999, 3); function order_review_custom_field($product_name, $cart_item, $cart_item_key) { $address = get_field('location', $cart_item['product_id']); return ($address) ? $product_name . '<div>Address: ' . $address . '</div>' : $product_name . '<div>Address: No address found!</div>'; }Aquí está el resultado en la página del carrito :
Y en la tabla de revisión de pedidos en la página de pago :
Podríamos usar el gancho de acción woocommerce_order_item_meta_end para agregar el valor del campo personalizado al final del nombre del producto en la plantilla de correo electrónico:
add_action("woocommerce_order_item_meta_end", "email_order_custom_field", 999, 4); function email_order_custom_field($item_id, $item, $order, $plain_text) { $address = get_field('location', $item->get_product_id()); echo ($address) ? '<div>Address: ' . $address . '</div>' : '<div>Address: No address found!</div>'; };Y aquí está el resultado en el correo electrónico:
Y en la tabla de detalles del pedido en la página de agradecimiento:
Esta respuesta ha sido completamente probada en woocommerce 5.7.1 y funciona.