Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

127
Vistas
¿Cómo convierto una matriz anidada de productos Woocommerce en un objeto Javascript?

Estoy tratando de acceder a stock_quantity, ID y SKU para productos de woocommerce en una matriz php.

Necesito obtener el SKU para compararlo con un valor en mi código JavaScript para poder mostrar la cantidad de existencias para el producto seleccionado y actualizar un enlace para agregar al carrito con la ID del producto seleccionado.

Obtengo los productos creando una consulta que devuelve cualquier producto con un SKU que contenga la variable $tag. Lo estoy pasando así:

 // Get any products with SKU that includes tag $query = new WC_Product_Query(); $query->set( 'sku', $tag ); $products = $query->get_products();

Idealmente, me gustaría convertir esta matriz php en una matriz javacript con todas las matrices/objetos anidados intactos. Este fragmento registrará correctamente la matriz en la consola y puedo ver que la matriz, de hecho, contiene los productos a los que necesito acceder.

 echo "<script>console.log(".json_encode(var_export($products, true)).");</script>";

Si no es posible simplemente convertir la matriz y todo el contenido anidado en una matriz de javascript, me pregunto si tal vez haya una manera de recorrer recursivamente la matriz de php y enviar el contenido a una matriz de javascript.

¡Cualquier ayuda sería muy apreciada! ¡Esta es mi primera publicación de desbordamiento de pila!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si desea enviar datos de php a javascript, puede usar tal cosa.

En php:

 $vars = [ 'data1' => ["first" => 1, "second" => 2], ... some many proprieties ]; wp_localize_script('name_of_script', 'name_of_variables', $vars);

En javascript:

 console.log(name_of_variables.data1)

Tal vez el IDE le diga que no puede encontrar la variable, porque la variable está en la página de PHP. Luego en javascript puedes usarlo como quieras

Espero que te sea de utilidad Saludos cordiales

about 4 years ago · Juan Pablo Isaza Denunciar

0

Desafortunadamente, nadie pudo proporcionar un fragmento, pero pude encontrar una solución, así que aquí está:

 // Get any products with SKU that includes tag $query = new WC_Product_Query(); $query->set( 'sku', $tag ); $products = $query->get_products(); // Initialize an empty array $products_arr = array(); // Loop through products foreach($products as $product){ // Create an empty object for each product $prod = new stdClass(); // Set get product data and add to object $prod->stock_quantity = $product->get_stock_quantity(); $prod->sku = $product->get_sku(); $prod->id = $product->get_id(); $prod->price = $product->get_price(); // Push product object with data to array array_push($products_arr, $prod); } // Create JS var and set it to the array of objects echo "<script>var ticketsBySku = ".json_encode($products_arr).";</script>";

Ahora tengo una variable js a la que puedo acceder en cualquier parte de mi código que contiene el contenido de mi consulta de productos de woocommerce (matriz de php)

¡Espero que eso ayude a alguien!

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda