Support » Plugin: WooCommerce Sermepa payment gateway » Fallo en notificación por e-mail

  • Resolved andreu

    (@andreu)


    Hola Jesús,

    Hemos movido un WooCommerce a un nuevo servidor y ahora no recibimos los emails de WooCommerce. La configuración de envío de mails de WordPress está bien, la hacemos por SMTP, la hemos probado y funciona.

    He consultado el log de errores y he encontrado este error que ha aparecido en el minuto exacto de una compra:

    [Wed Aug 10 11:40:11.598379 2016] [proxy_fcgi:error] [pid 10471:tid 139862982256384] [client 195.76.9.222:26448] AH01071: Got error '_wc_myredsys'), call_user_func_array, WC_MyRedsys->check_notification, WC_Abstract_Order->payment_complete, WC_Abstract_Order->reduce_order_stock, WC_Abstract_Order->send_stock_notifications, do_action('woocommerce_low_stock'), call_user_func_array, WC_Emails::send_transactional_email, do_action_ref_array, call_user_func_array, WC_Emails->low_stock, WC_Product_Variation->get_formatted_...\nPHP message: Error You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 6 de la base de datos de WordPress para la consulta SELECT postmeta.post_id AS product_id\nFROM wp_postmeta AS postmeta\nLEFT JOIN wp_posts AS products ON ( products.ID = postmeta.post_id )\nWHERE postmeta.meta_key LIKE 'attribute_%'\nAND postmeta.meta_value = 'blush-3'\nAND products.post_parent = realizada por require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array, call_user_func_array, WC_API->handle_api_requests, do_action('woocommerce_api_wc_myredsys'), call_user_func_array, WC_MyRedsys->check_notification, WC_Abstract_Order->payment_complete, WC_Abstract_Order->reduce_order_stock, WC_Abstract_Order->send_stock_notifications, do_action('woocommerce_low_stock'), call_user_func_array, WC_Emails::send_transactional_email, do_action_ref_array, call_user_func_array, WC_Emails->low_stock, WC_Product_Variation->get_forma...\nPHP message: Error You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 6 de la base de datos de WordPress para la consulta SELECT postmeta.post_id AS product_id\nFROM wp_postmeta AS postmeta\nLEFT JOIN wp_posts AS products ON ( products.ID = postmeta.post_id )\nWHERE postmeta.meta_key LIKE 'attribute_%'\nAND postmeta.meta_value = '38'\nAND products.post_parent = realizada por require('wp-blog-header.php'), wp, WP->main, WP->parse_request, do_action_ref_array, call_user_func_array, WC_API->handle_api_requests, do_action('woocommerce_api_wc_myredsys'), call_user_func_array, WC_MyRedsys->check_notification, WC_Abstract_Order->payment_complete, WC_Abstract_Order->reduce_order_stock, WC_Abstract_Order->send_stock_notifications, do_action('woocommerce_low_stock'), call_user_func_array, WC_Emails::send_transactional_email, do_action_ref_array, call_user_func_array, WC_Emails->low_stock, WC_Product_Variation->get_formatted_...\n'

    Tienes idea de cual puede ser el problema y como podemos solucionarlo? Tenemos las últimas versiones de todos los plugins, incluido el tuyo.

    Gracias por tu excelente trabajo.

    https://wordpress.org/plugins/woocommerce-sermepa-payment-gateway/

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Estimado @andreu

    Siento responder tan tarde, pero no me llegan las notificaciones de los nuevos mensajes y hacía mucho que no pasaba por aquí a ver si había algo nuevo.

    Imagino que ya habrás resuelto el problema, pero por si acaso aquí va mi respuesta. El error se produjo al dispararse el evento que gestiona el nivel bajo de stock (woocommerce_low_stock) de un producto vendido. Hay una consulta SQL mal escrita:

    SELECT postmeta.post_id AS product_id
    FROM wp_postmeta AS postmeta
    LEFT JOIN wp_posts AS products ON ( products.ID = postmeta.post_id )
    WHERE postmeta.meta_key LIKE ‘attribute_%’
    AND postmeta.meta_value = ‘blush-3’
    AND products.post_parent =

    Como verás, la consulta no está bien cerrada, falta el valor con el que se compara el campo products.post_parent. Hay que asegurarse de que allí aparece algo, puede ser una cadena vacía ”, un cero, etc.

    Echa un vistazo a esta página a ver si te sirve de ayuda: http://www.gatodev.com/index.php?qa=206679&qa_1=woocommerce-conseguir-precio-del-producto-variaci%C3%B3n

    La solución es encontrar la función donde se construya la consulta anterior y poner un par de comillas o convertir a entero el ID con el que se compara (por ej. (0 + $product->id).

    He buscado esa consulta en mi instalación de Woocommerce pero no la he encontrado.

    Hola Jesús,

    La verdad es que no recuerdo como lo solucionamos al final pero lo tenemos funcionando de nuevo. Seguramente no era culpa de tu plugin sino de WooCommerce en general.

    Gracias

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Fallo en notificación por e-mail’ is closed to new replies.