function mi_plugin_enviar_datos_pedido_y_notificar($order_id, $old_status, $new_status, $order) { // Verifica si WooCommerce está instalado y activado if (!class_exists('WooCommerce')) { error_log('WooCommerce no está instalado o activado.'); return; } // Solo procesar si el nuevo estado es "processing" if ($new_status !== 'processing') { error_log("Pedido $order_id en estado '$new_status' - No se envía a la API (solo se envía en estado 'processing')."); return; } // Comprobar si el pedido ya ha sido procesado previamente $already_processed = get_post_meta($order_id, '_mi_plugin_processed', true); if ($already_processed) { error_log("Pedido $order_id ya fue procesado anteriormente - No se envía de nuevo."); return; } // Marcar el pedido como procesado para evitar que se ejecute múltiples veces update_post_meta($order_id, '_mi_plugin_processed', true); $data = mi_plugin_preparar_datos_pedido($order_id); if (!$data) { error_log("No se pudieron preparar los datos para el pedido $order_id"); return; } $json_data = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); error_log("Datos a enviar a la API: $json_data"); // Agregar el JSON generado como una nota al pedido $order->add_order_note("JSON Generado para la API:\n" . $json_data); try { $curl = curl_init(); if (!$curl) { throw new Exception('No se pudo inicializar cURL.'); } curl_setopt_array($curl, array( CURLOPT_URL => 'http://119.8.3.165:60080/ApiCoreOne/TV/v1/PedidosVentas', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => $json_data, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json', 'X-API-Key: 27d34740-c3d4-1120-2023-b5ba3a62922c' ), )); $response = curl_exec($curl); $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); $err = curl_error($curl); curl_close($curl); if ($err) { throw new Exception("Error al enviar pedido a la API: " . $err); } if ($http_code >= 200 && $http_code < 300) { // Comprobar si el objeto en la respuesta no es null $response_data = json_decode($response, true); if (isset($response_data['Objeto']) && $response_data['Objeto'] !== null) { // Si el objeto no es null, continuar con el flujo de éxito $success_message = "Pedido enviado correctamente a la API. Respuesta: " . $response; error_log($success_message); $order->add_order_note($success_message); // Almacena los datos en la tabla global $wpdb; $table_name = $wpdb->prefix . 'wc_pedidos_api'; $wpdb->insert( $table_name, array( 'order_id' => $order_id, 'json_data' => $json_data, 'api_response' => $response ) ); } else { // Si el objeto es null, manejar como error $error_message = "Error en la respuesta de la API: El objeto es null. Respuesta: " . $response; error_log($error_message); $order->add_order_note($error_message); // Lanzar una excepción throw new Exception("Error en la respuesta de la API: El objeto es null. Respuesta: " . $response); } } else { // Código de respuesta de error (4xx, 5xx) $error_message = "Error en la respuesta de la API. Código HTTP: " . $http_code . ", Respuesta: " . $response; error_log($error_message); $order->add_order_note($error_message); // Lanzar una excepción throw new Exception("Error en la respuesta de la API. Código HTTP: " . $http_code . ", Respuesta: " . $response); } } catch (Exception $e) { // Manejo de errores $error_message = $e->getMessage(); error_log($error_message); // Almacena los datos en la tabla, incluso en caso de error global $wpdb; $table_name = $wpdb->prefix . 'wc_pedidos_api'; $wpdb->insert( $table_name, array( 'order_id' => $order_id, 'json_data' => $json_data, 'api_response' => $error_message ) ); // Agregar nota con el error $order->add_order_note("Error al enviar a la API:\n" . $error_message); // Desmarcar el pedido como procesado para permitir reintentos delete_post_meta($order_id, '_mi_plugin_processed'); } }Trebol bracket for U-Profile TIV292 and TIV294, each - 7278 bracket - Lumber Express
Skip links

Trebol bracket for U-Profile TIV292 and TIV294, each – 7278 bracket

In stock

$1.95

Trebol bracket for U-Profile TIV292 and TIV294, each – 7278 bracket

SKU: TIV296 Categories: , Availability: 3296 in stock

Description

Trebol bracket for U-Profile TIV292 and TIV294, each – 7278 bracket

The Trebol bracket for U-Profile TIV292 and TIV294 is an essential piece for the installation and support of U-shaped profiles in your furniture. Precisely designed to fit perfectly with TIV292 and TIV294 models, this bracket offers secure and stable fastening, ensuring that your profiles stay firmly in place. Its high-quality finish guarantees durability and resistance, allowing your furniture to maintain a pristine appearance over time. Ideal for use in kitchens, wardrobes, and other furniture, this bracket provides both functionality and aesthetics.

Benefits

  • Easy and secure installation.
  • Perfect compatibility with TIV292 and TIV294 models.
  • High durability and wear resistance.
  • High-quality finish for a professional look.
  • Provides stable and secure support for U-profiles.
Technical dataDescription
TypeBracket for U-profiles
BrandTrebol
Compatible ModelsTIV292 and TIV294
FinishHigh quality
IncludesBracket unit
UseSupport for U-profiles

Similar products

Reviews

There are no reviews yet.

Be the first to review “Trebol bracket for U-Profile TIV292 and TIV294, each – 7278 bracket”

Your email address will not be published. Required fields are marked *

1
Mobile Oval Aluminum Structural Profile, Black, 9ft 10in - PERALM11NG
Mobile Oval Aluminum Structural Profile, Black, 9ft 10in - PERALM11NG

Mobile Oval Aluminum Structural Profile, Black, 9ft 10in - PERALM11NG

+
$56.95
Subtotal - 1 item
Shipping & taxes calculated at checkout.
$56.95
Checkout Now
Inicio
Whatsapp
Traducir
Login
This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.