TransWikia.com

PHP como agregar funcion add_action en una tabla

Stack Overflow en español Asked by Oscar Rios on November 13, 2021

estoy atorado modificando una página de producto de Woocommerce en WordPress porque quiero ordenar la información que muestra y ponerla en una tabla

por ejemplo:

Precio USD | Precio MXN | Cantidad

pero no puedo poner dentro de la tabla la funcion add_action

esto es lo que tengo:

add_action( 'woocommerce_single_product_summary', 'woocommerce_template_custom_content', 32 );

function woocommerce_template_custom_content(){

echo "<table>";
echo "<tr>";
echo "  <th>Precio USD</th>";
echo "  <th>Precio MXN</th>";
echo "  <th>Cantidad</th>";
echo "</tr>";
echo "<tr>";
echo "<td>. add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 1); .</td>";
echo "<td> $ 0.00 MXN</td>";
echo "<td> Cantidad 1 </td>";
echo "</tr>";
echo "</table>"; 


}

Lo tengo en functions.php

Ayuda porfa!!!! que estoy haciendo mal?, o como se debe de llamar a esta función? de antemano muchas gracias a todos!!!!

One Answer

add_action() se usa para asignar una función a un evento y siempre devuelve verdadero, por eso aparece 1 en la tabla.

Entonces debes crear la función para que sea ejecutada cuando se lanza el evento:

add_action( 'evento', 'nombre_funcion', 1, [$params]);

Donde $params es la cantidad de parámetros que debe recibir la función, si es que los va a recibir.

Cuando necesites que se ejecute incluyes el siguiente código:

do_action('evento', [$param1, $param2, ... $paramX]);

Estás agregando add_action(...) como cadena, sin llamar realmente a la función:

echo "<td>. add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 1); .</td>";

Tienes cerrar las comillas y agregar punto entre cada elemento que quieras concatenar: "inicio" . funcion('parametros') . "fin de cadena";

Función corregida, lanzando el evento:

function woocommerce_template_custom_content(){
    echo "<table>";
    echo "<tr>";
    echo "  <th>Precio USD</th>";
    echo "  <th>Precio MXN</th>";
    echo "  <th>Cantidad</th>";
    echo "</tr>";
    echo "<tr>";
    // do_action, en vez de add_action
    echo "<td>" . do_action( 'woocommerce_single_product_summary') . "</td>";
    echo "<td> $ 0.00 MXN</td>";
    echo "<td> Cantidad 1 </td>";
    echo "</tr>";
    echo "</table>"; 
}

Answered by Triby on November 13, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP