Soporte » Plugins y Hacks » Acceder a tabla agregada a base de datos de wordpress

  • chupachota

    (@chupachota)


    Hola estoy desarrollando un plugin para actualizar el stock de mi tienda fisica cada vez que haya una venta en wordpress. Para ello tengo que acceder a una tabla (productos) que he añadido a la base de datos de wordpress. Lo he intentado de la siguiente manera:(esta funcion se ejecuta cada vez que hay un pago exitoso).

    function rudr_complete( $order_id ) {
                
    	$database="database";
        	$user="user";
        	$password="myPassword";
            $mydb = new wpdb($user,$password,$database,'localhost');
           
    	$order = wc_get_order($order_id);
    
    	foreach ($order->get_items() as $item_id => $item ) {
    
    	    $product        = $item->get_product();	 	    
    	    $item_sku = $product->get_sku();
    
                $referencia = $item_sku;
    
                $result = $mydb->get_results('SELECT unidades FROM productos WHERE codigo_de_barras = "'.$referencia.'"');
                
                mail("luilli.guillan@gmail.com", "dentro del bucle",$result);
    	    
    	}
    }

    de manera que en $result deberia de obtener el numero de unidades del producto que hay en la tienda fisica, pero $result parece estar vacia, ya que en el email que mando no muestra nada en el body.

Viendo 1 respuesta (de un total de 1)
  • Hola @chupachota

    Veamos, una cosa es una tabla en la DB del WordPress y otra una DB (Base de datos) que es lo que parece que estas haciendo y por lo tanto no tiene sentido (desde mi punto de vista) usar la class wpdb para hacer las consultas ya que puedes hacerlo manualmente.

    Igualmente en ese codigo, concretamente ...FROM productos... no especificas el prefijo, que siempre tienen las tablas del WordPress.

    Otra cosa que puede pasar es que no existe el sku.
    Prueba asi:

    
    /** Devuelve false si no existe o el producto ya sea simple o variable. */
    $product = wc_get_product( $item->get_product_id() );
    /** Si existe consultamos el sku */
    $referencia = ( $product ? $product->get_sku() : '' );
    if ( $referencia ) {
    /** Hacemos la consulta mysql y mandamos el mail */
    } 
    
Viendo 1 respuesta (de un total de 1)
  • Debes estar registrado para responder a este debate.