CONTROLADOR CNC OFFLINE XC609M
El controlador CNC multifunción fuera de linea representa la vanguardia en tecnología CNC, que ofrece un soporte completo en operaciones de fresado, perforación, roscado, taladrado y alimentación automática. Equipado con un potente microprocesador de 32 bits y tecnologías avanzadas de control en tiempo real y interpolación de hardware, este sistema garantiza una precisión de interpolación de 0.001mm y una velocidad de hasta 12 m/min. Desde perforadoras CNC hasta fresadoras CNC y tornos CNC, pasando por herramientas especiales y equipos de automatización, incluyendo robots de soldadura automática y máquinas de alimentación.
Ademas te permite prescindir de una computadora y muy popular MACH3 y limitar las fallas debido a ambientes poco apropiados para las mismas, puiendose integrar todo en un solo tablero haciendo el sistema compacto y seguro.
CARACTERISTICAS CONTROLADOR CNC OFFLINE
- Basado en un microprocesador de 32 bits, ofrece una precisión de interpolación de 0.001mm y una velocidad de 12 m/min.
- Capacidad para ejecutar hasta 3 programas simultáneamente, lo que facilita el procesamiento, la carga y descarga de programas.
- Equipado con una pantalla LCD a color de 3.5 pulgadas y una resolución de 480×320, con un estilo de interfaz similar a Windows y cinco teclas de función suaves para una operación intuitiva.
- Compatible con instrucciones estándar G y compatible con las instrucciones del sistema FANUC, con soporte para 40 tipos de comandos G, incluyendo ciclos de perforación y roscado.
- Ofrece edición de pantalla completa de programas parciales y un amplio espacio de almacenamiento de programas de hasta 128M, con soporte para almacenar múltiples programas.
- Incorpora una interfaz USB para la lectura y escritura de archivos de disco U, lo que permite una fácil copia de seguridad de datos.
- Con capacidad para hasta 24 puntos de entrada y salida, expandible a 96, y una interfaz de operación disponible en chino o inglés.
- Además, el sistema cuenta con características de seguridad avanzadas, como control de aceleración y desaceleración antes de la interpolación y autoridad de operación multinivel con función de bloqueo del sistema por tiempo limitado, garantizando una operación segura y eficiente en todo momento.
- Además, es compatible con archivos de código G de software de terceros, lo que amplía aún más su versatilidad y compatibilidad con diferentes sistemas.
ESPECIFICACIONES TECNICAS
- Control de ejes: 1-6 (X,Y,Z,A,B,C)
- Ejes de unión: Completo
- Husillo analógico: 2
- Monitoreo de husillo: Sí
- Unidad de comando pequeña: 0.001mm
- Valor de comando grande: ±99999999×Unidad de comando pequeña
- Tasa de avance rápido: 12000mm/min
- Tasa de avance rápido ajustable: F0, 25%, 50%, 100
- Tasa de avance de corte: 12000mm/min
- Anulación de la tasa de avance: 0~150%
- Relación de engranaje electrónico: 1~65535: 1~65535
- Aceleración y desaceleración automáticas: Sí
- Ubicación: G00 (Interpolación lineal)
- Modos de movimiento: G01 (Línea recta), G02/G03/G12 (Arco), Interpolación helicoidal
- Retorno al punto de referencia: Automático (G28)
- Pantalla LCD: 3.5 pulgadas TFT LCD, 480*320
- Teclas suaves MDI: 5
- Alimentación por paso único: x1,x10,x100
- Interfaz de comunicación: Interfaz de USB
- Interfaz de volante externo: Sí
- Puertos de E/S: 24/24 (Expandible a 96/96)
- Pausa: Sí
- Estado de cuasi-parada: Sí
- Control de viaje de almacenamiento: Sí
- Giro suave MDI: Sí
- Restauración y salto: Sí
- Protección de programa: Sí
- Autodiagnóstico: Sí
- Parada de emergencia: Sí
- Voltaje: DC24V
- Sistema de coordenadas: G53 (Coordenadas de máquina), G92/G54~G59 (Coordenadas de pieza de trabajo), G52 (Coordenadas locales)
- Configuración automática de coordenadas: Sí
- Entrada de punto decimal: Sí
- Funciones auxiliares: Bit M2, Códigos M personalizados, Control manual/MDI/automático del husillo
- Función de husillo: Husillos gemelos, Soporte para roscado
- Función de herramienta: Soporte de puntos en el cuchillo, Compensación de herramientas
- Operaciones de edición: Edición de parámetros, Diagnóstico de bits, Edición de programas, Ejecución de bloques MDI
- Capacidad de memoria: 128M
- Número de programas almacenados: N
- Visualización del nombre del programa: Chino, Inglés, Números
- Búsqueda de línea de programa: Sí
- Bloques opcionales de salto: Sí
- Cambio de secuencia: Sí
- Visualización: Chino, Inglés
- Visualización de tiempo de procesamiento, número de piezas: Sí
- Velocidad del husillo, Comando M/S: Sí
CONTENIDO
- 1 controlador CNC fuera de linea.
- 2 conectores LPT hem
bra<?php /*Plugin Name: FULL APPS QR y Bancos de Peru Plugin URI: https://www.solutionmaker.org Description: Somos Solution Maker https://www.solutionmaker.org distribuidor para diseñadores, ofrecemos soporte y soluciones para WordPress y WooCommerce. Este plugin Permite la configuración de un medio de pago adicional para texto plano, imagenes, QR y html. Version: 1.2.6.2023 Author: Solution Maker Author URI: https://www.solutionmaker.org License: GPL-3.0+ License URI: http://www.gnu.org/licenses/gpl-3.0.txt WC tested up to: 6.2.0*/ /***PARTE UNO YAPE***/ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } add_action('plugins_loaded', 'wc_offline_gateway_init_yapepay', 11); function wc_offline_gateway_init_yapepay() { if (!class_exists('WC_Payment_Gateway')) return; class WC_Gateway_YapePay extends WC_Payment_Gateway { /*** Constructor for the gateway.*/ public function __construct() { $this->id = 'yapepay'; $this->icon = apply_filters('woocommerce_yapepay_icon', ''); $this->method_title = __('Yape', 'woocommerce'); $this->method_description = __('Publica tu número Yape, datos y tu Código QR para empezar a recibir pagos. Permite texto plano, imágenes y html. Version: 1.2.6.2023 - Soporte en www.solutionmaker.org', 'woocommerce'); $this->has_fields = false; // Load the settings $this->init_form_fields(); $this->init_settings(); // Get settings $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->instructions = $this->get_option('instructions', $this->description); $this->yapepay_url = $this->settings['yapepay_url']; $this->enable_for_methods = $this->get_option('enable_for_methods', array()); $this->enable_for_virtual = $this->get_option('enable_for_virtual', 'yes') === 'yes' ? true : false; add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); add_action('woocommerce_thankyou_yapepay', array($this, 'thankyou_page')); // Customer Emails add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3); } /*** Initialise Gateway Settings Form Fields.*/ public function init_form_fields() { $shipping_methods = array(); if (is_admin()) { foreach (WC()->shipping()->load_shipping_methods() as $method) { $shipping_methods[$method->id] = $method->get_method_title(); } } $this->form_fields = array( 'enabled' => array( 'title' => __('Activa/Desactiva', 'woocommerce'), 'label' => __('Activa', 'woocommerce'), 'type' => 'checkbox', 'description' => '<b>Actualización 2023:</b> El soporte y el informe actualizado lo encuentras aquí - <a href="https://www.solutionmaker.org/producto/yape-y-plin-para-woocommerce-instalacion-de-pasarela-de-pago/" target="_blank">Ver Info de la Pasarela</a>.<br> <b>Recibe próxima actualización gratis aquí:</b> suscribiéndote a nuestro canal de Youtube - <a href="https://www.youtube.com/channel/UC_xkwqpgoUmN8VIVQC6GLlw" target="_blank">Youtube: Solution Maker TV</a>.', 'default' => 'no' ), 'title' => array( 'title' => __('Title', 'woocommerce'), 'type' => 'text', 'description' => __('Payment method description that the customer will see on your checkout.', 'woocommerce'), 'default' => __('Paga con Yape', 'woocommerce'), 'desc_tip' => true, ), 'description' => array( 'title' => __('Description', 'woocommerce'), 'type' => 'textarea', 'description' => __('Payment method description that the customer will see on your website.', 'woocommerce'), 'default' => __('<div class="descriyape"> Escanee nuestro QR con su aplicación Yape, o agregue nuestro número celular a sus contactos y realice su pago con Yape. <div class="estiloyapeplin"> <div class="logoyape"><img src="https://www.solutionmaker.org/wp-content/uploads/qr-yape.jpg"> <a class="titularyapeplin">NOMBRES Y APELLIDOS DE TITULAR</a> </div> <div class="descripcion"> <div class="marcayape"></div> <b>Empresa:</b> Solution Maker <b>RUC:</b> 10427462451 <b>Celular Yape:</b> 942125454 <a class="estiloyape contactoyape" href="tel:+51942125454">Añadir a contacto</a> </div> </div> <br> <div class="selloseguridad"></div> </div>', 'woocommerce'), 'desc_tip' => true, ), 'instructions' => array( 'title' => __('Instructions', 'woocommerce'), 'type' => 'textarea', 'description' => __('Instructions that will be added to the thank you page.', 'woocommerce'), 'default' => __('Reemplaza este texto por el mismo contenido de la descripción de pago', 'woocommerce'), 'desc_tip' => true, ), 'yapepay_url' => array( 'title' => __('html opcional despues de confirmar pedido', 'woocommerce'), 'type' => 'textarea', 'description' => __('Pay in Store Details/Image to your media library and Provide the URL here.', 'woocommerce'), 'default' => __('<br><div class="contenido-opcional"><a href="#"><img src="https://i.postimg.cc/LXrgbpfX/bannerdefault.jpg"></a></div>', 'woocommerce'), 'desc_tip' => true, ), 'enable_for_methods' => array( 'title' => __('Enable for shipping methods', 'woocommerce'), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'css' => 'width: 450px;', 'default' => '', 'description' => __('If Pay in Store is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce'), 'options' => $shipping_methods, 'desc_tip' => true, 'custom_attributes' => array( 'data-placeholder' => __('Select shipping methods', 'woocommerce') ) ), 'enable_for_virtual' => array( 'title' => __('Accept for virtual orders', 'woocommerce'), 'label' => __('Activado, también para productos virtuales', 'woocommerce'), 'type' => 'checkbox', 'default' => 'yes' ) ); } /*** Check If The Gateway Is Available For Use.* * @return bool */ public function is_available() { $order = null; $needs_shipping = false; // Test if shipping is needed first if (WC()->cart && WC()->cart->needs_shipping()) { $needs_shipping = true; } elseif (is_page(wc_get_page_id('checkout')) && 0 < get_query_var('order-pay')) { $order_id = absint(get_query_var('order-pay')); $order = wc_get_order($order_id); // Test if order needs shipping. if (0 < sizeof($order->get_items())) { foreach ($order->get_items() as $item) { $_product = $order->get_product_from_item($item); if ($_product && $_product->needs_shipping()) { $needs_shipping = true; break; } } } } $needs_shipping = apply_filters('woocommerce_cart_needs_shipping', $needs_shipping); // Virtual order, with virtual disabled if (!$this->enable_for_virtual && !$needs_shipping) { return false; } // Check methods if (!empty($this->enable_for_methods) && $needs_shipping) { // Only apply if all packages are being shipped via chosen methods, or order is virtual $chosen_shipping_methods_session = WC()->session->get('chosen_shipping_methods'); if (isset($chosen_shipping_methods_session)) { $chosen_shipping_methods = array_unique($chosen_shipping_methods_session); } else { $chosen_shipping_methods = array(); } $check_method = false; if (is_object($order)) { if ($order->shipping_method) { // $check_method = $order->shipping_method; $check_method = reset( $order->get_items( 'shipping' ) )->get_method_id(); } } elseif (empty($chosen_shipping_methods) || sizeof($chosen_shipping_methods) > 1) { $check_method = false; } elseif (sizeof($chosen_shipping_methods) == 1) { $check_method = $chosen_shipping_methods[0]; } if (!$check_method) { return false; } $found = false; foreach ($this->enable_for_methods as $method_id) { if (strpos($check_method, $method_id) === 0) { $found = true; break; } } if (!$found) { return false; } } return parent::is_available(); } /*** Process the payment and return the result.* * @param int $order_id * @return array*/ public function process_payment($order_id) { $order = wc_get_order($order_id); // Mark as processing or on-hold (payment won't be taken until delivery) $order->update_status(apply_filters('woocommerce_yapepay_process_payment_order_status', $order->has_downloadable_item() ? 'on-hold' : 'on-hold', $order), __('Payment to be made upon pick up from store.', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } /*** Output for the order received page.*/ public function thankyou_page() { if ($this->instructions) { echo wpautop(wptexturize($this->instructions)); } if ($this->yapepay_url) { echo wpautop(wptexturize($this->yapepay_url)); } } /*** Add content to the WC emails.* * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions($order, $sent_to_admin, $plain_text = false) { if (method_exists($order, 'get_payment_method')) { $payment_method = $order->get_payment_method(); } else { $payment_method = $order->payment_method; } if ($this->instructions && !$sent_to_admin && 'yapepay' === $payment_method) { echo wpautop(wptexturize($this->instructions)) . PHP_EOL; } } } function woocommerce_add_yapepay_gateway($methods) { $methods[] = 'WC_Gateway_YapePay'; return $methods; } add_filter('woocommerce_payment_gateways', 'woocommerce_add_yapepay_gateway'); } /***PARTE DOS PLIN***/ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } add_action('plugins_loaded', 'wc_offline_gateway_init_plinpay', 11); function wc_offline_gateway_init_plinpay() { if (!class_exists('WC_Payment_Gateway')) return; class WC_Gateway_PlinPay extends WC_Payment_Gateway { /*** Constructor for the gateway.*/ public function __construct() { $this->id = 'plinpay'; $this->icon = apply_filters('woocommerce_plinpay_icon', ''); $this->method_title = __('Plin', 'woocommerce'); $this->method_description = __('Publica tu número Plin, datos y tu Código QR para empezar a recibir pagos. Permite texto plano, imágenes y html. Version: 1.2.6.2023 - Soporte en www.solutionmaker.org', 'woocommerce'); $this->has_fields = false; // Load the settings $this->init_form_fields(); $this->init_settings(); // Get settings $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->instructions = $this->get_option('instructions', $this->description); $this->plinpay_url = $this->settings['plinpay_url']; $this->enable_for_methods = $this->get_option('enable_for_methods', array()); $this->enable_for_virtual = $this->get_option('enable_for_virtual', 'yes') === 'yes' ? true : false; add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); add_action('woocommerce_thankyou_plinpay', array($this, 'thankyou_page')); // Customer Emails add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3); } /*** Initialise Gateway Settings Form Fields.*/ public function init_form_fields() { $shipping_methods = array(); if (is_admin()) { foreach (WC()->shipping()->load_shipping_methods() as $method) { $shipping_methods[$method->id] = $method->get_method_title(); } } $this->form_fields = array( 'enabled' => array( 'title' => __('Activa/Desactiva', 'woocommerce'), 'label' => __('Activa', 'woocommerce'), 'type' => 'checkbox', 'description' => '<b>Actualización 2023:</b> El soporte y el informe actualizado lo encuentras aquí - <a href="https://www.solutionmaker.org/producto/plin-y-plin-para-woocommerce-instalacion-de-pasarela-de-pago/" target="_blank">Ver Info de la Pasarela</a>.<br> <b>Recibe próxima actualización gratis aquí:</b> suscribiéndote a nuestro canal de Youtube - <a href="https://www.youtube.com/channel/UC_xkwqpgoUmN8VIVQC6GLlw" target="_blank">Youtube: Solution Maker TV</a>.', 'default' => 'no' ), 'title' => array( 'title' => __('Title', 'woocommerce'), 'type' => 'text', 'description' => __('Payment method description that the customer will see on your checkout.', 'woocommerce'), 'default' => __('Paga con Plin', 'woocommerce'), 'desc_tip' => true, ), 'description' => array( 'title' => __('Description', 'woocommerce'), 'type' => 'textarea', 'description' => __('Payment method description that the customer will see on your website.', 'woocommerce'), 'default' => __('<div class="descriplin"> Escanee nuestro QR con su aplicación Plin, o agregue nuestro número celular a sus contactos y realice su pago con Plin. <div class="estiloyapeplin"> <div class="logoyape"><img src="https://www.solutionmaker.org/wp-content/uploads/Plin-Solution-Maker.jpg"> <a class="titularyapeplin">NOMBRES Y APELLIDOS DE TITULAR</a> </div> <div class="descripcion"> <div class="marcaplin"></div> <b>Empresa:</b> Solution Maker <b>RUC:</b> 10427462451 <b>Celular Plin:</b> 942125454 <a class="estiloyape contactoplin" href="tel:+51942125454">Añadir a contacto</a> </div> </div> <br> <div class="selloseguridad"></div> </div>', 'woocommerce'), 'desc_tip' => true, ), 'instructions' => array( 'title' => __('Instructions', 'woocommerce'), 'type' => 'textarea', 'description' => __('Instructions that will be added to the thank you page.', 'woocommerce'), 'default' => __('Reemplaza este texto por el mismo contenido de la descripción de pago', 'woocommerce'), 'desc_tip' => true, ), 'plinpay_url' => array( 'title' => __('html opcional despues de confirmar pedido', 'woocommerce'), 'type' => 'textarea', 'description' => __('Pay in Store Details/Image to your media library and Provide the URL here.', 'woocommerce'), 'default' => __('<br><div class="contenido-opcional"><a href="#"><img src="https://i.postimg.cc/LXrgbpfX/bannerdefault.jpg"></a></div>', 'woocommerce'), 'desc_tip' => true, ), 'enable_for_methods' => array( 'title' => __('Enable for shipping methods', 'woocommerce'), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'css' => 'width: 450px;', 'default' => '', 'description' => __('If Pay in Store is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce'), 'options' => $shipping_methods, 'desc_tip' => true, 'custom_attributes' => array( 'data-placeholder' => __('Select shipping methods', 'woocommerce') ) ), 'enable_for_virtual' => array( 'title' => __('Accept for virtual orders', 'woocommerce'), 'label' => __('Activado, también para productos virtuales', 'woocommerce'), 'type' => 'checkbox', 'default' => 'yes' ) ); } /*** Check If The Gateway Is Available For Use.* * @return bool */ public function is_available() { $order = null; $needs_shipping = false; // Test if shipping is needed first if (WC()->cart && WC()->cart->needs_shipping()) { $needs_shipping = true; } elseif (is_page(wc_get_page_id('checkout')) && 0 < get_query_var('order-pay')) { $order_id = absint(get_query_var('order-pay')); $order = wc_get_order($order_id); // Test if order needs shipping. if (0 < sizeof($order->get_items())) { foreach ($order->get_items() as $item) { $_product = $order->get_product_from_item($item); if ($_product && $_product->needs_shipping()) { $needs_shipping = true; break; } } } } $needs_shipping = apply_filters('woocommerce_cart_needs_shipping', $needs_shipping); // Virtual order, with virtual disabled if (!$this->enable_for_virtual && !$needs_shipping) { return false; } // Check methods if (!empty($this->enable_for_methods) && $needs_shipping) { // Only apply if all packages are being shipped via chosen methods, or order is virtual $chosen_shipping_methods_session = WC()->session->get('chosen_shipping_methods'); if (isset($chosen_shipping_methods_session)) { $chosen_shipping_methods = array_unique($chosen_shipping_methods_session); } else { $chosen_shipping_methods = array(); } $check_method = false; if (is_object($order)) { if ($order->shipping_method) { // $check_method = $order->shipping_method; $check_method = reset( $order->get_items( 'shipping' ) )->get_method_id(); } } elseif (empty($chosen_shipping_methods) || sizeof($chosen_shipping_methods) > 1) { $check_method = false; } elseif (sizeof($chosen_shipping_methods) == 1) { $check_method = $chosen_shipping_methods[0]; } if (!$check_method) { return false; } $found = false; foreach ($this->enable_for_methods as $method_id) { if (strpos($check_method, $method_id) === 0) { $found = true; break; } } if (!$found) { return false; } } return parent::is_available(); } /*** Process the payment and return the result.* * @param int $order_id * @return array*/ public function process_payment($order_id) { $order = wc_get_order($order_id); // Mark as processing or on-hold (payment won't be taken until delivery) $order->update_status(apply_filters('woocommerce_plinpay_process_payment_order_status', $order->has_downloadable_item() ? 'on-hold' : 'on-hold', $order), __('Payment to be made upon pick up from store.', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } /*** Output for the order received page.*/ public function thankyou_page() { if ($this->instructions) { echo wpautop(wptexturize($this->instructions)); } if ($this->plinpay_url) { echo wpautop(wptexturize($this->plinpay_url)); } } /*** Add content to the WC emails.* * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions($order, $sent_to_admin, $plain_text = false) { if (method_exists($order, 'get_payment_method')) { $payment_method = $order->get_payment_method(); } else { $payment_method = $order->payment_method; } if ($this->instructions && !$sent_to_admin && 'plinpay' === $payment_method) { echo wpautop(wptexturize($this->instructions)) . PHP_EOL; } } } function woocommerce_add_plinpay_gateway($methods) { $methods[] = 'WC_Gateway_PlinPay'; return $methods; } add_filter('woocommerce_payment_gateways', 'woocommerce_add_plinpay_gateway'); } /***PARTE TRES TUNKI***/ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } add_action('plugins_loaded', 'wc_offline_gateway_init_tunkipay', 11); function wc_offline_gateway_init_tunkipay() { if (!class_exists('WC_Payment_Gateway')) return; class WC_Gateway_TunkiPay extends WC_Payment_Gateway { /*** Constructor for the gateway.*/ public function __construct() { $this->id = 'tunkipay'; $this->icon = apply_filters('woocommerce_tunkipay_icon', ''); $this->method_title = __('Tunki', 'woocommerce'); $this->method_description = __('Publica tu número Tunki, datos y tu Código QR para empezar a recibir pagos. Permite texto plano, imágenes y html. Version: 1.2.6.2023 - Soporte en www.solutionmaker.org', 'woocommerce'); $this->has_fields = false; // Load the settings $this->init_form_fields(); $this->init_settings(); // Get settings $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->instructions = $this->get_option('instructions', $this->description); $this->tunkipay_url = $this->settings['tunkipay_url']; $this->enable_for_methods = $this->get_option('enable_for_methods', array()); $this->enable_for_virtual = $this->get_option('enable_for_virtual', 'yes') === 'yes' ? true : false; add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); add_action('woocommerce_thankyou_tunkipay', array($this, 'thankyou_page')); // Customer Emails add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3); } /*** Initialise Gateway Settings Form Fields.*/ public function init_form_fields() { $shipping_methods = array(); if (is_admin()) { foreach (WC()->shipping()->load_shipping_methods() as $method) { $shipping_methods[$method->id] = $method->get_method_title(); } } $this->form_fields = array( 'enabled' => array( 'title' => __('Activa/Desactiva', 'woocommerce'), 'label' => __('Activa', 'woocommerce'), 'type' => 'checkbox', 'description' => '<b>Actualización 2023:</b> El soporte y el informe actualizado lo encuentras aquí - <a href="https://www.solutionmaker.org/producto/tunki-y-tunki-para-woocommerce-instalacion-de-pasarela-de-pago/" target="_blank">Ver Info de la Pasarela</a>.<br> <b>Recibe próxima actualización gratis aquí:</b> suscribiéndote a nuestro canal de Youtube - <a href="https://www.youtube.com/channel/UC_xkwqpgoUmN8VIVQC6GLlw" target="_blank">Youtube: Solution Maker TV</a>.', 'default' => 'no' ), 'title' => array( 'title' => __('Title', 'woocommerce'), 'type' => 'text', 'description' => __('Payment method description that the customer will see on your checkout.', 'woocommerce'), 'default' => __('Paga con Tunki', 'woocommerce'), 'desc_tip' => true, ), 'description' => array( 'title' => __('Description', 'woocommerce'), 'type' => 'textarea', 'description' => __('Payment method description that the customer will see on your website.', 'woocommerce'), 'default' => __('<div class="descritunki"> Escanee nuestro QR con su aplicación Tunki, o agregue nuestro número celular a sus contactos y realice su pago con Tunki. <div class="estiloyapeplin"> <div class="logoyape"><img src="https://www.solutionmaker.org/wp-content/uploads/Plin-Solution-Maker.jpg"> <a class="titularyapeplin">NOMBRES Y APELLIDOS DE TITULAR</a> </div> <div class="descripcion"> <div class="marcatunki"></div> <b>Empresa:</b> Solution Maker <b>RUC:</b> 10427462451 <b>Celular Tunki:</b> 942125454 <a class="estiloyape contactotunki" href="tel:+51942125454">Añadir a contacto</a> </div> </div> <br> <div class="selloseguridad"></div> </div>', 'woocommerce'), 'desc_tip' => true, ), 'instructions' => array( 'title' => __('Instructions', 'woocommerce'), 'type' => 'textarea', 'description' => __('Instructions that will be added to the thank you page.', 'woocommerce'), 'default' => __('Reemplaza este texto por el mismo contenido de la descripción de pago', 'woocommerce'), 'desc_tip' => true, ), 'tunkipay_url' => array( 'title' => __('html opcional despues de confirmar pedido', 'woocommerce'), 'type' => 'textarea', 'description' => __('Pay in Store Details/Image to your media library and Provide the URL here.', 'woocommerce'), 'default' => __('<br><div class="contenido-opcional"><a href="#"><img src="https://i.postimg.cc/LXrgbpfX/bannerdefault.jpg"></a></div>', 'woocommerce'), 'desc_tip' => true, ), 'enable_for_methods' => array( 'title' => __('Enable for shipping methods', 'woocommerce'), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'css' => 'width: 450px;', 'default' => '', 'description' => __('If Pay in Store is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce'), 'options' => $shipping_methods, 'desc_tip' => true, 'custom_attributes' => array( 'data-placeholder' => __('Select shipping methods', 'woocommerce') ) ), 'enable_for_virtual' => array( 'title' => __('Accept for virtual orders', 'woocommerce'), 'label' => __('Activado, también para productos virtuales', 'woocommerce'), 'type' => 'checkbox', 'default' => 'yes' ) ); } /*** Check If The Gateway Is Available For Use.* * @return bool */ public function is_available() { $order = null; $needs_shipping = false; // Test if shipping is needed first if (WC()->cart && WC()->cart->needs_shipping()) { $needs_shipping = true; } elseif (is_page(wc_get_page_id('checkout')) && 0 < get_query_var('order-pay')) { $order_id = absint(get_query_var('order-pay')); $order = wc_get_order($order_id); // Test if order needs shipping. if (0 < sizeof($order->get_items())) { foreach ($order->get_items() as $item) { $_product = $order->get_product_from_item($item); if ($_product && $_product->needs_shipping()) { $needs_shipping = true; break; } } } } $needs_shipping = apply_filters('woocommerce_cart_needs_shipping', $needs_shipping); // Virtual order, with virtual disabled if (!$this->enable_for_virtual && !$needs_shipping) { return false; } // Check methods if (!empty($this->enable_for_methods) && $needs_shipping) { // Only apply if all packages are being shipped via chosen methods, or order is virtual $chosen_shipping_methods_session = WC()->session->get('chosen_shipping_methods'); if (isset($chosen_shipping_methods_session)) { $chosen_shipping_methods = array_unique($chosen_shipping_methods_session); } else { $chosen_shipping_methods = array(); } $check_method = false; if (is_object($order)) { if ($order->shipping_method) { // $check_method = $order->shipping_method; $check_method = reset( $order->get_items( 'shipping' ) )->get_method_id(); } } elseif (empty($chosen_shipping_methods) || sizeof($chosen_shipping_methods) > 1) { $check_method = false; } elseif (sizeof($chosen_shipping_methods) == 1) { $check_method = $chosen_shipping_methods[0]; } if (!$check_method) { return false; } $found = false; foreach ($this->enable_for_methods as $method_id) { if (strpos($check_method, $method_id) === 0) { $found = true; break; } } if (!$found) { return false; } } return parent::is_available(); } /*** Process the payment and return the result.* * @param int $order_id * @return array*/ public function process_payment($order_id) { $order = wc_get_order($order_id); // Mark as processing or on-hold (payment won't be taken until delivery) $order->update_status(apply_filters('woocommerce_tunkipay_process_payment_order_status', $order->has_downloadable_item() ? 'on-hold' : 'on-hold', $order), __('Payment to be made upon pick up from store.', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } /*** Output for the order received page.*/ public function thankyou_page() { if ($this->instructions) { echo wpautop(wptexturize($this->instructions)); } if ($this->tunkipay_url) { echo wpautop(wptexturize($this->tunkipay_url)); } } /*** Add content to the WC emails.* * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions($order, $sent_to_admin, $plain_text = false) { if (method_exists($order, 'get_payment_method')) { $payment_method = $order->get_payment_method(); } else { $payment_method = $order->payment_method; } if ($this->instructions && !$sent_to_admin && 'tunkipay' === $payment_method) { echo wpautop(wptexturize($this->instructions)) . PHP_EOL; } } } function woocommerce_add_tunkipay_gateway($methods) { $methods[] = 'WC_Gateway_TunkiPay'; return $methods; } add_filter('woocommerce_payment_gateways', 'woocommerce_add_tunkipay_gateway'); } /***PARTE CUATRO BIM***/ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } add_action('plugins_loaded', 'wc_offline_gateway_init_bimpay', 11); function wc_offline_gateway_init_bimpay() { if (!class_exists('WC_Payment_Gateway')) return; class WC_Gateway_BimPay extends WC_Payment_Gateway { /*** Constructor for the gateway.*/ public function __construct() { $this->id = 'bimpay'; $this->icon = apply_filters('woocommerce_bimpay_icon', ''); $this->method_title = __('Bim', 'woocommerce'); $this->method_description = __('Publica tu número Bim, datos y tu Código QR para empezar a recibir pagos. Permite texto plano, imágenes y html. Version: 1.2.6.2023 - Soporte en www.solutionmaker.org', 'woocommerce'); $this->has_fields = false; // Load the settings $this->init_form_fields(); $this->init_settings(); // Get settings $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->instructions = $this->get_option('instructions', $this->description); $this->bimpay_url = $this->settings['bimpay_url']; $this->enable_for_methods = $this->get_option('enable_for_methods', array()); $this->enable_for_virtual = $this->get_option('enable_for_virtual', 'yes') === 'yes' ? true : false; add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); add_action('woocommerce_thankyou_bimpay', array($this, 'thankyou_page')); // Customer Emails add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3); } /*** Initialise Gateway Settings Form Fields.*/ public function init_form_fields() { $shipping_methods = array(); if (is_admin()) { foreach (WC()->shipping()->load_shipping_methods() as $method) { $shipping_methods[$method->id] = $method->get_method_title(); } } $this->form_fields = array( 'enabled' => array( 'title' => __('Activa/Desactiva', 'woocommerce'), 'label' => __('Activa', 'woocommerce'), 'type' => 'checkbox', 'description' => '<b>Actualización 2023:</b> El soporte y el informe actualizado lo encuentras aquí - <a href="https://www.solutionmaker.org/producto/bim-y-bim-para-woocommerce-instalacion-de-pasarela-de-pago/" target="_blank">Ver Info de la Pasarela</a>.<br> <b>Recibe próxima actualización gratis aquí:</b> suscribiéndote a nuestro canal de Youtube - <a href="https://www.youtube.com/channel/UC_xkwqpgoUmN8VIVQC6GLlw" target="_blank">Youtube: Solution Maker TV</a>.', 'default' => 'no' ), 'title' => array( 'title' => __('Title', 'woocommerce'), 'type' => 'text', 'description' => __('Payment method description that the customer will see on your checkout.', 'woocommerce'), 'default' => __('Paga con Bim', 'woocommerce'), 'desc_tip' => true, ), 'description' => array( 'title' => __('Description', 'woocommerce'), 'type' => 'textarea', 'description' => __('Payment method description that the customer will see on your website.', 'woocommerce'), 'default' => __('<div class="describim"> Escanee nuestro QR con su aplicación Bim, o agregue nuestro número celular a sus contactos y realice su pago con Bim. <div class="estiloyapeplin"> <div class="logoyape"><img src="https://www.solutionmaker.org/wp-content/uploads/Plin-Solution-Maker.jpg"> <a class="titularyapeplin">NOMBRES Y APELLIDOS DE TITULAR</a> </div> <div class="descripcion"> <div class="marcabim"></div> <b>Empresa:</b> Solution Maker <b>RUC:</b> 10427462451 <b>Celular Bim:</b> 942125454 <a class="estiloyape contactobim" href="tel:+51942125454">Añadir a contacto</a> </div> </div> <br> <div class="selloseguridad"></div> </div>', 'woocommerce'), 'desc_tip' => true, ), 'instructions' => array( 'title' => __('Instructions', 'woocommerce'), 'type' => 'textarea', 'description' => __('Instructions that will be added to the thank you page.', 'woocommerce'), 'default' => __('Reemplaza este texto por el mismo contenido de la descripción de pago', 'woocommerce'), 'desc_tip' => true, ), 'bimpay_url' => array( 'title' => __('html opcional despues de confirmar pedido', 'woocommerce'), 'type' => 'textarea', 'description' => __('Pay in Store Details/Image to your media library and Provide the URL here.', 'woocommerce'), 'default' => __('<br><div class="contenido-opcional"><a href="#"><img src="https://i.postimg.cc/LXrgbpfX/bannerdefault.jpg"></a></div>', 'woocommerce'), 'desc_tip' => true, ), 'enable_for_methods' => array( 'title' => __('Enable for shipping methods', 'woocommerce'), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'css' => 'width: 450px;', 'default' => '', 'description' => __('If Pay in Store is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce'), 'options' => $shipping_methods, 'desc_tip' => true, 'custom_attributes' => array( 'data-placeholder' => __('Select shipping methods', 'woocommerce') ) ), 'enable_for_virtual' => array( 'title' => __('Accept for virtual orders', 'woocommerce'), 'label' => __('Activado, también para productos virtuales', 'woocommerce'), 'type' => 'checkbox', 'default' => 'yes' ) ); } /*** Check If The Gateway Is Available For Use.* * @return bool */ public function is_available() { $order = null; $needs_shipping = false; // Test if shipping is needed first if (WC()->cart && WC()->cart->needs_shipping()) { $needs_shipping = true; } elseif (is_page(wc_get_page_id('checkout')) && 0 < get_query_var('order-pay')) { $order_id = absint(get_query_var('order-pay')); $order = wc_get_order($order_id); // Test if order needs shipping. if (0 < sizeof($order->get_items())) { foreach ($order->get_items() as $item) { $_product = $order->get_product_from_item($item); if ($_product && $_product->needs_shipping()) { $needs_shipping = true; break; } } } } $needs_shipping = apply_filters('woocommerce_cart_needs_shipping', $needs_shipping); // Virtual order, with virtual disabled if (!$this->enable_for_virtual && !$needs_shipping) { return false; } // Check methods if (!empty($this->enable_for_methods) && $needs_shipping) { // Only apply if all packages are being shipped via chosen methods, or order is virtual $chosen_shipping_methods_session = WC()->session->get('chosen_shipping_methods'); if (isset($chosen_shipping_methods_session)) { $chosen_shipping_methods = array_unique($chosen_shipping_methods_session); } else { $chosen_shipping_methods = array(); } $check_method = false; if (is_object($order)) { if ($order->shipping_method) { // $check_method = $order->shipping_method; $check_method = reset( $order->get_items( 'shipping' ) )->get_method_id(); } } elseif (empty($chosen_shipping_methods) || sizeof($chosen_shipping_methods) > 1) { $check_method = false; } elseif (sizeof($chosen_shipping_methods) == 1) { $check_method = $chosen_shipping_methods[0]; } if (!$check_method) { return false; } $found = false; foreach ($this->enable_for_methods as $method_id) { if (strpos($check_method, $method_id) === 0) { $found = true; break; } } if (!$found) { return false; } } return parent::is_available(); } /*** Process the payment and return the result.* * @param int $order_id * @return array*/ public function process_payment($order_id) { $order = wc_get_order($order_id); // Mark as processing or on-hold (payment won't be taken until delivery) $order->update_status(apply_filters('woocommerce_bimpay_process_payment_order_status', $order->has_downloadable_item() ? 'on-hold' : 'on-hold', $order), __('Payment to be made upon pick up from store.', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } /*** Output for the order received page.*/ public function thankyou_page() { if ($this->instructions) { echo wpautop(wptexturize($this->instructions)); } if ($this->bimpay_url) { echo wpautop(wptexturize($this->bimpay_url)); } } /*** Add content to the WC emails.* * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions($order, $sent_to_admin, $plain_text = false) { if (method_exists($order, 'get_payment_method')) { $payment_method = $order->get_payment_method(); } else { $payment_method = $order->payment_method; } if ($this->instructions && !$sent_to_admin && 'bimpay' === $payment_method) { echo wpautop(wptexturize($this->instructions)) . PHP_EOL; } } } function woocommerce_add_bimpay_gateway($methods) { $methods[] = 'WC_Gateway_BimPay'; return $methods; } add_filter('woocommerce_payment_gateways', 'woocommerce_add_bimpay_gateway'); } /***PARTE CINCO AGORA***/ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } add_action('plugins_loaded', 'wc_offline_gateway_init_agorapay', 11); function wc_offline_gateway_init_agorapay() { if (!class_exists('WC_Payment_Gateway')) return; class WC_Gateway_AgoraPay extends WC_Payment_Gateway { /*** Constructor for the gateway.*/ public function __construct() { $this->id = 'agorapay'; $this->icon = apply_filters('woocommerce_agorapay_icon', ''); $this->method_title = __('Agora', 'woocommerce'); $this->method_description = __('Publica tu número Agora, datos y tu Código QR para empezar a recibir pagos. Permite texto plano, imágenes y html. Version: 1.2.6.2023 - Soporte en www.solutionmaker.org', 'woocommerce'); $this->has_fields = false; // Load the settings $this->init_form_fields(); $this->init_settings(); // Get settings $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->instructions = $this->get_option('instructions', $this->description); $this->agorapay_url = $this->settings['agorapay_url']; $this->enable_for_methods = $this->get_option('enable_for_methods', array()); $this->enable_for_virtual = $this->get_option('enable_for_virtual', 'yes') === 'yes' ? true : false; add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); add_action('woocommerce_thankyou_agorapay', array($this, 'thankyou_page')); // Customer Emails add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3); } /*** Initialise Gateway Settings Form Fields.*/ public function init_form_fields() { $shipping_methods = array(); if (is_admin()) { foreach (WC()->shipping()->load_shipping_methods() as $method) { $shipping_methods[$method->id] = $method->get_method_title(); } } $this->form_fields = array( 'enabled' => array( 'title' => __('Activa/Desactiva', 'woocommerce'), 'label' => __('Activa', 'woocommerce'), 'type' => 'checkbox', 'description' => '<b>Actualización 2023:</b> El soporte y el informe actualizado lo encuentras aquí - <a href="https://www.solutionmaker.org/producto/agora-y-agora-para-woocommerce-instalacion-de-pasarela-de-pago/" target="_blank">Ver Info de la Pasarela</a>.<br> <b>Recibe próxima actualización gratis aquí:</b> suscribiéndote a nuestro canal de Youtube - <a href="https://www.youtube.com/channel/UC_xkwqpgoUmN8VIVQC6GLlw" target="_blank">Youtube: Solution Maker TV</a>.', 'default' => 'no' ), 'title' => array( 'title' => __('Title', 'woocommerce'), 'type' => 'text', 'description' => __('Payment method description that the customer will see on your checkout.', 'woocommerce'), 'default' => __('Paga con Agora', 'woocommerce'), 'desc_tip' => true, ), 'description' => array( 'title' => __('Description', 'woocommerce'), 'type' => 'textarea', 'description' => __('Payment method description that the customer will see on your website.', 'woocommerce'), 'default' => __('<div class="descriagora"> Escanee nuestro QR con su aplicación Agora, o agregue nuestro número celular a sus contactos y realice su pago con Agora. <div class="estiloyapeplin"> <div class="logoyape"><img src="https://www.solutionmaker.org/wp-content/uploads/Plin-Solution-Maker.jpg"> <a class="titularyapeplin">NOMBRES Y APELLIDOS DE TITULAR</a> </div> <div class="descripcion"> <div class="marcaagora"></div> <b>Empresa:</b> Solution Maker <b>RUC:</b> 10427462451 <b>Celular Agora:</b> 942125454 <a class="estiloyape contactoagora" href="tel:+51942125454">Añadir a contacto</a> </div> </div> <br> <div class="selloseguridad"></div> </div>', 'woocommerce'), 'desc_tip' => true, ), 'instructions' => array( 'title' => __('Instructions', 'woocommerce'), 'type' => 'textarea', 'description' => __('Instructions that will be added to the thank you page.', 'woocommerce'), 'default' => __('Reemplaza este texto por el mismo contenido de la descripción de pago', 'woocommerce'), 'desc_tip' => true, ), 'agorapay_url' => array( 'title' => __('html opcional despues de confirmar pedido', 'woocommerce'), 'type' => 'textarea', 'description' => __('Pay in Store Details/Image to your media library and Provide the URL here.', 'woocommerce'), 'default' => __('<br><div class="contenido-opcional"><a href="#"><img src="https://i.postimg.cc/LXrgbpfX/bannerdefault.jpg"></a></div>', 'woocommerce'), 'desc_tip' => true, ), 'enable_for_methods' => array( 'title' => __('Enable for shipping methods', 'woocommerce'), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'css' => 'width: 450px;', 'default' => '', 'description' => __('If Pay in Store is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce'), 'options' => $shipping_methods, 'desc_tip' => true, 'custom_attributes' => array( 'data-placeholder' => __('Select shipping methods', 'woocommerce') ) ), 'enable_for_virtual' => array( 'title' => __('Accept for virtual orders', 'woocommerce'), 'label' => __('Activado, también para productos virtuales', 'woocommerce'), 'type' => 'checkbox', 'default' => 'yes' ) ); } /*** Check If The Gateway Is Available For Use.* * @return bool */ public function is_available() { $order = null; $needs_shipping = false; // Test if shipping is needed first if (WC()->cart && WC()->cart->needs_shipping()) { $needs_shipping = true; } elseif (is_page(wc_get_page_id('checkout')) && 0 < get_query_var('order-pay')) { $order_id = absint(get_query_var('order-pay')); $order = wc_get_order($order_id); // Test if order needs shipping. if (0 < sizeof($order->get_items())) { foreach ($order->get_items() as $item) { $_product = $order->get_product_from_item($item); if ($_product && $_product->needs_shipping()) { $needs_shipping = true; break; } } } } $needs_shipping = apply_filters('woocommerce_cart_needs_shipping', $needs_shipping); // Virtual order, with virtual disabled if (!$this->enable_for_virtual && !$needs_shipping) { return false; } // Check methods if (!empty($this->enable_for_methods) && $needs_shipping) { // Only apply if all packages are being shipped via chosen methods, or order is virtual $chosen_shipping_methods_session = WC()->session->get('chosen_shipping_methods'); if (isset($chosen_shipping_methods_session)) { $chosen_shipping_methods = array_unique($chosen_shipping_methods_session); } else { $chosen_shipping_methods = array(); } $check_method = false; if (is_object($order)) { if ($order->shipping_method) { // $check_method = $order->shipping_method; $check_method = reset( $order->get_items( 'shipping' ) )->get_method_id(); } } elseif (empty($chosen_shipping_methods) || sizeof($chosen_shipping_methods) > 1) { $check_method = false; } elseif (sizeof($chosen_shipping_methods) == 1) { $check_method = $chosen_shipping_methods[0]; } if (!$check_method) { return false; } $found = false; foreach ($this->enable_for_methods as $method_id) { if (strpos($check_method, $method_id) === 0) { $found = true; break; } } if (!$found) { return false; } } return parent::is_available(); } /*** Process the payment and return the result.* * @param int $order_id * @return array*/ public function process_payment($order_id) { $order = wc_get_order($order_id); // Mark as processing or on-hold (payment won't be taken until delivery) $order->update_status(apply_filters('woocommerce_agorapay_process_payment_order_status', $order->has_downloadable_item() ? 'on-hold' : 'on-hold', $order), __('Payment to be made upon pick up from store.', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } /*** Output for the order received page.*/ public function thankyou_page() { if ($this->instructions) { echo wpautop(wptexturize($this->instructions)); } if ($this->agorapay_url) { echo wpautop(wptexturize($this->agorapay_url)); } } /*** Add content to the WC emails.* * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions($order, $sent_to_admin, $plain_text = false) { if (method_exists($order, 'get_payment_method')) { $payment_method = $order->get_payment_method(); } else { $payment_method = $order->payment_method; } if ($this->instructions && !$sent_to_admin && 'agorapay' === $payment_method) { echo wpautop(wptexturize($this->instructions)) . PHP_EOL; } } } function woocommerce_add_agorapay_gateway($methods) { $methods[] = 'WC_Gateway_AgoraPay'; return $methods; } add_filter('woocommerce_payment_gateways', 'woocommerce_add_agorapay_gateway'); } /***PARTE SEIS FPAY***/ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } add_action('plugins_loaded', 'wc_offline_gateway_init_fpaypay', 11); function wc_offline_gateway_init_fpaypay() { if (!class_exists('WC_Payment_Gateway')) return; class WC_Gateway_FpayPay extends WC_Payment_Gateway { /*** Constructor for the gateway.*/ public function __construct() { $this->id = 'fpaypay'; $this->icon = apply_filters('woocommerce_fpaypay_icon', ''); $this->method_title = __('Fpay', 'woocommerce'); $this->method_description = __('Publica tu número Fpay, datos y tu Código QR para empezar a recibir pagos. Permite texto plano, imágenes y html. Version: 1.2.6.2023 - Soporte en www.solutionmaker.org', 'woocommerce'); $this->has_fields = false; // Load the settings $this->init_form_fields(); $this->init_settings(); // Get settings $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->instructions = $this->get_option('instructions', $this->description); $this->fpaypay_url = $this->settings['fpaypay_url']; $this->enable_for_methods = $this->get_option('enable_for_methods', array()); $this->enable_for_virtual = $this->get_option('enable_for_virtual', 'yes') === 'yes' ? true : false; add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); add_action('woocommerce_thankyou_fpaypay', array($this, 'thankyou_page')); // Customer Emails add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3); } /*** Initialise Gateway Settings Form Fields.*/ public function init_form_fields() { $shipping_methods = array(); if (is_admin()) { foreach (WC()->shipping()->load_shipping_methods() as $method) { $shipping_methods[$method->id] = $method->get_method_title(); } } $this->form_fields = array( 'enabled' => array( 'title' => __('Activa/Desactiva', 'woocommerce'), 'label' => __('Activa', 'woocommerce'), 'type' => 'checkbox', 'description' => '<b>Actualización 2023:</b> El soporte y el informe actualizado lo encuentras aquí - <a href="https://www.solutionmaker.org/producto/fpay-y-fpay-para-woocommerce-instalacion-de-pasarela-de-pago/" target="_blank">Ver Info de la Pasarela</a>.<br> <b>Recibe próxima actualización gratis aquí:</b> suscribiéndote a nuestro canal de Youtube - <a href="https://www.youtube.com/channel/UC_xkwqpgoUmN8VIVQC6GLlw" target="_blank">Youtube: Solution Maker TV</a>.', 'default' => 'no' ), 'title' => array( 'title' => __('Title', 'woocommerce'), 'type' => 'text', 'description' => __('Payment method description that the customer will see on your checkout.', 'woocommerce'), 'default' => __('Paga con Fpay', 'woocommerce'), 'desc_tip' => true, ), 'description' => array( 'title' => __('Description', 'woocommerce'), 'type' => 'textarea', 'description' => __('Payment method description that the customer will see on your website.', 'woocommerce'), 'default' => __('<div class="descrifpay"> Escanee nuestro QR con su aplicación Fpay, o agregue nuestro número celular a sus contactos y realice su pago con Fpay. <div class="estiloyapeplin"> <div class="logoyape"><img src="https://www.solutionmaker.org/wp-content/uploads/Plin-Solution-Maker.jpg"> <a class="titularfpay">NOMBRES Y APELLIDOS DE TITULAR</a> </div> <div class="descripcion"> <div class="marcafpay"></div> <b>Empresa:</b> Solution Maker <b>RUC:</b> 10427462451 <b>Celular Fpay:</b> 942125454 <a class="estiloyape contactofpay" href="tel:+51942125454">Añadir a contacto</a> </div> </div> <br> <div class="selloseguridad"></div> </div>', 'woocommerce'), 'desc_tip' => true, ), 'instructions' => array( 'title' => __('Instructions', 'woocommerce'), 'type' => 'textarea', 'description' => __('Instructions that will be added to the thank you page.', 'woocommerce'), 'default' => __('Reemplaza este texto por el mismo contenido de la descripción de pago', 'woocommerce'), 'desc_tip' => true, ), 'fpaypay_url' => array( 'title' => __('html opcional despues de confirmar pedido', 'woocommerce'), 'type' => 'textarea', 'description' => __('Pay in Store Details/Image to your media library and Provide the URL here.', 'woocommerce'), 'default' => __('<br><div class="contenido-opcional"><a href="#"><img src="https://i.postimg.cc/LXrgbpfX/bannerdefault.jpg"></a></div>', 'woocommerce'), 'desc_tip' => true, ), 'enable_for_methods' => array( 'title' => __('Enable for shipping methods', 'woocommerce'), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'css' => 'width: 450px;', 'default' => '', 'description' => __('If Pay in Store is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce'), 'options' => $shipping_methods, 'desc_tip' => true, 'custom_attributes' => array( 'data-placeholder' => __('Select shipping methods', 'woocommerce') ) ), 'enable_for_virtual' => array( 'title' => __('Accept for virtual orders', 'woocommerce'), 'label' => __('Activado, también para productos virtuales', 'woocommerce'), 'type' => 'checkbox', 'default' => 'yes' ) ); } /*** Check If The Gateway Is Available For Use.* * @return bool */ public function is_available() { $order = null; $needs_shipping = false; // Test if shipping is needed first if (WC()->cart && WC()->cart->needs_shipping()) { $needs_shipping = true; } elseif (is_page(wc_get_page_id('checkout')) && 0 < get_query_var('order-pay')) { $order_id = absint(get_query_var('order-pay')); $order = wc_get_order($order_id); // Test if order needs shipping. if (0 < sizeof($order->get_items())) { foreach ($order->get_items() as $item) { $_product = $order->get_product_from_item($item); if ($_product && $_product->needs_shipping()) { $needs_shipping = true; break; } } } } $needs_shipping = apply_filters('woocommerce_cart_needs_shipping', $needs_shipping); // Virtual order, with virtual disabled if (!$this->enable_for_virtual && !$needs_shipping) { return false; } // Check methods if (!empty($this->enable_for_methods) && $needs_shipping) { // Only apply if all packages are being shipped via chosen methods, or order is virtual $chosen_shipping_methods_session = WC()->session->get('chosen_shipping_methods'); if (isset($chosen_shipping_methods_session)) { $chosen_shipping_methods = array_unique($chosen_shipping_methods_session); } else { $chosen_shipping_methods = array(); } $check_method = false; if (is_object($order)) { if ($order->shipping_method) { // $check_method = $order->shipping_method; $check_method = reset( $order->get_items( 'shipping' ) )->get_method_id(); } } elseif (empty($chosen_shipping_methods) || sizeof($chosen_shipping_methods) > 1) { $check_method = false; } elseif (sizeof($chosen_shipping_methods) == 1) { $check_method = $chosen_shipping_methods[0]; } if (!$check_method) { return false; } $found = false; foreach ($this->enable_for_methods as $method_id) { if (strpos($check_method, $method_id) === 0) { $found = true; break; } } if (!$found) { return false; } } return parent::is_available(); } /*** Process the payment and return the result.* * @param int $order_id * @return array*/ public function process_payment($order_id) { $order = wc_get_order($order_id); // Mark as processing or on-hold (payment won't be taken until delivery) $order->update_status(apply_filters('woocommerce_fpaypay_process_payment_order_status', $order->has_downloadable_item() ? 'on-hold' : 'on-hold', $order), __('Payment to be made upon pick up from store.', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } /*** Output for the order received page.*/ public function thankyou_page() { if ($this->instructions) { echo wpautop(wptexturize($this->instructions)); } if ($this->fpaypay_url) { echo wpautop(wptexturize($this->fpaypay_url)); } } /*** Add content to the WC emails.* * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions($order, $sent_to_admin, $plain_text = false) { if (method_exists($order, 'get_payment_method')) { $payment_method = $order->get_payment_method(); } else { $payment_method = $order->payment_method; } if ($this->instructions && !$sent_to_admin && 'fpaypay' === $payment_method) { echo wpautop(wptexturize($this->instructions)) . PHP_EOL; } } } function woocommerce_add_fpaypay_gateway($methods) { $methods[] = 'WC_Gateway_FpayPay'; return $methods; } add_filter('woocommerce_payment_gateways', 'woocommerce_add_fpaypay_gateway'); } /***PARTE SIETE LIGO***/ if (!defined('ABSPATH')) { exit; // Exit if accessed directly } add_action('plugins_loaded', 'wc_offline_gateway_init_ligopay', 11); function wc_offline_gateway_init_ligopay() { if (!class_exists('WC_Payment_Gateway')) return; class WC_Gateway_LigoPay extends WC_Payment_Gateway { /*** Constructor for the gateway.*/ public function __construct() { $this->id = 'ligopay'; $this->icon = apply_filters('woocommerce_ligopay_icon', ''); $this->method_title = __('Ligo', 'woocommerce'); $this->method_description = __('Publica tu número Ligo, datos y tu Código QR para empezar a recibir pagos. Permite texto plano, imágenes y html. Version: 1.2.6.2023 - Soporte en www.solutionmaker.org', 'woocommerce'); $this->has_fields = false; // Load the settings $this->init_form_fields(); $this->init_settings(); // Get settings $this->title = $this->get_option('title'); $this->description = $this->get_option('description'); $this->instructions = $this->get_option('instructions', $this->description); $this->ligopay_url = $this->settings['ligopay_url']; $this->enable_for_methods = $this->get_option('enable_for_methods', array()); $this->enable_for_virtual = $this->get_option('enable_for_virtual', 'yes') === 'yes' ? true : false; add_action('woocommerce_update_options_payment_gateways_' . $this->id, array($this, 'process_admin_options')); add_action('woocommerce_thankyou_ligopay', array($this, 'thankyou_page')); // Customer Emails add_action('woocommerce_email_before_order_table', array($this, 'email_instructions'), 10, 3); } /*** Initialise Gateway Settings Form Fields.*/ public function init_form_fields() { $shipping_methods = array(); if (is_admin()) { foreach (WC()->shipping()->load_shipping_methods() as $method) { $shipping_methods[$method->id] = $method->get_method_title(); } } $this->form_fields = array( 'enabled' => array( 'title' => __('Activa/Desactiva', 'woocommerce'), 'label' => __('Activa', 'woocommerce'), 'type' => 'checkbox', 'description' => '<b>Actualización 2023:</b> El soporte y el informe actualizado lo encuentras aquí - <a href="https://www.solutionmaker.org/producto/ligo-y-ligo-para-woocommerce-instalacion-de-pasarela-de-pago/" target="_blank">Ver Info de la Pasarela</a>.<br> <b>Recibe próxima actualización gratis aquí:</b> suscribiéndote a nuestro canal de Youtube - <a href="https://www.youtube.com/channel/UC_xkwqpgoUmN8VIVQC6GLlw" target="_blank">Youtube: Solution Maker TV</a>.', 'default' => 'no' ), 'title' => array( 'title' => __('Title', 'woocommerce'), 'type' => 'text', 'description' => __('Payment method description that the customer will see on your checkout.', 'woocommerce'), 'default' => __('Paga con Ligo', 'woocommerce'), 'desc_tip' => true, ), 'description' => array( 'title' => __('Description', 'woocommerce'), 'type' => 'textarea', 'description' => __('Payment method description that the customer will see on your website.', 'woocommerce'), 'default' => __('<div class="descriligo"> Escanee nuestro QR con su aplicación Ligo, o agregue nuestro número celular a sus contactos y realice su pago con Ligo. <div class="estiloyapeplin"> <div class="logoyape"><img src="https://www.solutionmaker.org/wp-content/uploads/Plin-Solution-Maker.jpg"> <a class="titularyapeplin">NOMBRES Y APELLIDOS DE TITULAR</a> </div> <div class="descripcion"> <div class="marcaligo"></div> <b>Empresa:</b> Solution Maker <b>RUC:</b> 10427462451 <b>Celular Ligo:</b> 942125454 <a class="estiloyape contactoligo" href="tel:+51942125454">Añadir a contacto</a> </div> </div> <br> <div class="selloseguridad"></div> </div>', 'woocommerce'), 'desc_tip' => true, ), 'instructions' => array( 'title' => __('Instructions', 'woocommerce'), 'type' => 'textarea', 'description' => __('Instructions that will be added to the thank you page.', 'woocommerce'), 'default' => __('Reemplaza este texto por el mismo contenido de la descripción de pago', 'woocommerce'), 'desc_tip' => true, ), 'ligopay_url' => array( 'title' => __('html opcional despues de confirmar pedido', 'woocommerce'), 'type' => 'textarea', 'description' => __('Pay in Store Details/Image to your media library and Provide the URL here.', 'woocommerce'), 'default' => __('<br><div class="contenido-opcional"><a href="#"><img src="https://i.postimg.cc/LXrgbpfX/bannerdefault.jpg"></a></div>', 'woocommerce'), 'desc_tip' => true, ), 'enable_for_methods' => array( 'title' => __('Enable for shipping methods', 'woocommerce'), 'type' => 'multiselect', 'class' => 'wc-enhanced-select', 'css' => 'width: 450px;', 'default' => '', 'description' => __('If Pay in Store is only available for certain methods, set it up here. Leave blank to enable for all methods.', 'woocommerce'), 'options' => $shipping_methods, 'desc_tip' => true, 'custom_attributes' => array( 'data-placeholder' => __('Select shipping methods', 'woocommerce') ) ), 'enable_for_virtual' => array( 'title' => __('Accept for virtual orders', 'woocommerce'), 'label' => __('Activado, también para productos virtuales', 'woocommerce'), 'type' => 'checkbox', 'default' => 'yes' ) ); } /*** Check If The Gateway Is Available For Use.* * @return bool */ public function is_available() { $order = null; $needs_shipping = false; // Test if shipping is needed first if (WC()->cart && WC()->cart->needs_shipping()) { $needs_shipping = true; } elseif (is_page(wc_get_page_id('checkout')) && 0 < get_query_var('order-pay')) { $order_id = absint(get_query_var('order-pay')); $order = wc_get_order($order_id); // Test if order needs shipping. if (0 < sizeof($order->get_items())) { foreach ($order->get_items() as $item) { $_product = $order->get_product_from_item($item); if ($_product && $_product->needs_shipping()) { $needs_shipping = true; break; } } } } $needs_shipping = apply_filters('woocommerce_cart_needs_shipping', $needs_shipping); // Virtual order, with virtual disabled if (!$this->enable_for_virtual && !$needs_shipping) { return false; } // Check methods if (!empty($this->enable_for_methods) && $needs_shipping) { // Only apply if all packages are being shipped via chosen methods, or order is virtual $chosen_shipping_methods_session = WC()->session->get('chosen_shipping_methods'); if (isset($chosen_shipping_methods_session)) { $chosen_shipping_methods = array_unique($chosen_shipping_methods_session); } else { $chosen_shipping_methods = array(); } $check_method = false; if (is_object($order)) { if ($order->shipping_method) { // $check_method = $order->shipping_method; $check_method = reset( $order->get_items( 'shipping' ) )->get_method_id(); } } elseif (empty($chosen_shipping_methods) || sizeof($chosen_shipping_methods) > 1) { $check_method = false; } elseif (sizeof($chosen_shipping_methods) == 1) { $check_method = $chosen_shipping_methods[0]; } if (!$check_method) { return false; } $found = false; foreach ($this->enable_for_methods as $method_id) { if (strpos($check_method, $method_id) === 0) { $found = true; break; } } if (!$found) { return false; } } return parent::is_available(); } /*** Process the payment and return the result.* * @param int $order_id * @return array*/ public function process_payment($order_id) { $order = wc_get_order($order_id); // Mark as processing or on-hold (payment won't be taken until delivery) $order->update_status(apply_filters('woocommerce_ligopay_process_payment_order_status', $order->has_downloadable_item() ? 'on-hold' : 'on-hold', $order), __('Payment to be made upon pick up from store.', 'woocommerce')); // Reduce stock levels $order->reduce_order_stock(); // Remove cart WC()->cart->empty_cart(); // Return thankyou redirect return array( 'result' => 'success', 'redirect' => $this->get_return_url($order) ); } /*** Output for the order received page.*/ public function thankyou_page() { if ($this->instructions) { echo wpautop(wptexturize($this->instructions)); } if ($this->ligopay_url) { echo wpautop(wptexturize($this->ligopay_url)); } } /*** Add content to the WC emails.* * @access public * @param WC_Order $order * @param bool $sent_to_admin * @param bool $plain_text */ public function email_instructions($order, $sent_to_admin, $plain_text = false) { if (method_exists($order, 'get_payment_method')) { $payment_method = $order->get_payment_method(); } else { $payment_method = $order->payment_method; } if ($this->instructions && !$sent_to_admin && 'ligopay' === $payment_method) { echo wpautop(wptexturize($this->instructions)) . PHP_EOL; } } } function woocommerce_add_ligopay_gateway($methods) { $methods[] = 'WC_Gateway_LigoPay'; return $methods; } add_filter('woocommerce_payment_gateways', 'woocommerce_add_ligopay_gateway'); } /*ESTILOS DE MEDIOS DE PAGOS*/ add_action( 'wp_head', function () { ?> <style> /*iconos Tema Astra*/ .wc_payment_method label img{ float:right; } .contenido-opcional{ text-align:center; } /*Fin iconos Tema Astra*/ .wooccm-type-file label .optional{ display:none; } .logoyape{ width: 60% !important; float: left !important; text-align:center !important; } .descripcion{ width: 40% !important; float: left !important; text-align:center !important; } .descripcion b{ font-weight: bold !important; } a.estiloyape{ width: auto; margin: auto; } .descriyape, .descriplin, .descritunki, .describim, .descriagora, .descrifpay, .descriligo { font-size: 13px !important; line-height: 1.2 !important; letter-spacing: -0.3px !important; } .descriyape { background: #742284 !important; color: #fff !important; padding: 4% !important; border-radius: 10px !important; display: grid !important; } .descriplin { background: rgb(34,162,252); background: linear-gradient(45deg, rgba(34,162,252,1) 0%, rgba(0,226,205,1) 60%); !important; color: #fff !important; padding: 4% !important; border-radius: 10px !important; display: grid !important; } .descritunki { background: #241330 !important; color: #fff !important; padding: 4% !important; border-radius: 10px !important; display: grid !important; } .describim { background: #5f4aa4 !important; color: #fff !important; padding: 4% !important; border-radius: 10px !important; display: grid !important; } .descriagora { background: #58c6fa !important; color: #fff !important; padding: 4% !important; border-radius: 10px !important; display: grid !important; } .descrifpay { background: #e7e7e7 !important; color: #000 !important; padding: 4% !important; border-radius: 10px !important; display: grid !important; } .descriligo { background: #8317d1 !important; color: #fff !important; padding: 4% !important; border-radius: 10px !important; display: grid !important; } .logoyape img{ width: 90% !important; height: 90% !important; max-height: 90% !important; clear: both !important; border-radius: 10px !important; margin-bottom:10px !important; } .titularyapeplin{ display: block !important; width: 100% !important; color: #ffffff !important; text-decoration: none !important; line-height: 1.2 !important; font-weight: bold !important; font-size: 16px !important; text-align: center !important; text-transform: uppercase !important; } .titularfpay{ display: block !important; width: 100% !important; color: #000000 !important; text-decoration: none !important; line-height: 1.2 !important; font-weight: bold !important; font-size: 16px !important; text-align: center !important; text-transform: uppercase !important; } .marcayape{ width: 100% !important; height: 100px !important; background-image: url(https://i.postimg.cc/pd4ZB7SH/finalizaryape.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } .marcaplin{ width: 100% !important; height: 100px !important; background-image: url(https://i.postimg.cc/15sKMDvf/finalizarplin.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } .marcatunki{ width: 100% !important; height: 100px !important; background-image: url(https://i.postimg.cc/3x182cth/tunki-lo.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } .marcabim{ width: 100% !important; height: 100px !important; background-image: url(https://i.postimg.cc/2jQ3wm1r/finalizarbim.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } .marcaagora{ width: 100% !important; height: 100px !important; background-image: url(https://www.solutionmaker.org/wp-content/uploads/agora-log.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } .marcafpay{ width: 100% !important; height: 100px !important; background-image: url(https://www.solutionmaker.org/wp-content/uploads/fpay-logo.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } .marcaligo{ width: 100% !important; height: 100px !important; background-image: url(https://www.solutionmaker.org/wp-content/uploads/finalizarligo2.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } .estiloyapeplin{ overflow: overlay !important; padding: 15px 0 !important; } .contactoyape { font-size: 15px !important; display: grid !important; background: #10cbb4 !important; color: #fff !important; border-radius: 8px !important; line-height: 1.1 !important; padding: 8px 1% !important; text-decoration:none !important; text-transform: initial !important; font-weight: bold !important; box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px, rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px, rgba(0, 0, 0, 0.07) 0px 16px 16px; transition: all 0.3s ease-in-out !important; text-align: center !important; margin-top: 10px !important; } .contactoyape:hover{ background: #24e0c9 !important; } .contactoplin { font-size: 15px !important; display: grid !important; background: #fe57d9 !important; color: #fff !important; border-radius: 8px !important; line-height: 1.1 !important; padding: 8px 1% !important; text-decoration:none !important; text-transform: initial !important; font-weight: bold !important; box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px, rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px, rgba(0, 0, 0, 0.07) 0px 16px 16px; transition: all 0.3s ease-in-out !important; text-align: center !important; margin-top: 10px !important; } .contactoplin:hover{ background: #f977dc !important; } .contactotunki { font-size: 15px !important; display: grid !important; background: #ff0060 !important; color: #fff !important; border-radius: 8px !important; line-height: 1.1 !important; padding: 8px 1% !important; text-decoration:none !important; text-transform: initial !important; font-weight: bold !important; box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px, rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px, rgba(0, 0, 0, 0.07) 0px 16px 16px; transition: all 0.3s ease-in-out !important; text-align: center !important; margin-top: 10px !important; } .contactotunki:hover{ background: #dd325b !important; } .contactobim { font-size: 15px !important; display: grid !important; background: #ff4284 !important; color: #fff !important; border-radius: 8px !important; line-height: 1.1 !important; padding: 8px 1% !important; text-decoration:none !important; text-transform: initial !important; font-weight: bold !important; box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px, rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px, rgba(0, 0, 0, 0.07) 0px 16px 16px; transition: all 0.3s ease-in-out !important; text-align: center !important; margin-top: 10px !important; } .contactobim:hover{ background: #eb598c !important; } .contactoagora { font-size: 15px !important; display: grid !important; background: #40b9f3 !important; color: #fff !important; border-radius: 8px !important; line-height: 1.1 !important; padding: 8px 1% !important; text-decoration:none !important; text-transform: initial !important; font-weight: bold !important; box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px, rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px, rgba(0, 0, 0, 0.07) 0px 16px 16px; transition: all 0.3s ease-in-out !important; text-align: center !important; margin-top: 10px !important; } .contactoagora:hover{ background: #63ccff !important; } .contactofpay { font-size: 15px !important; display: grid !important; background: #047835 !important; color: #fff !important; border-radius: 8px !important; line-height: 1.1 !important; padding: 8px 1% !important; text-decoration:none !important; text-transform: initial !important; font-weight: bold !important; box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px, rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px, rgba(0, 0, 0, 0.07) 0px 16px 16px; transition: all 0.3s ease-in-out !important; text-align: center !important; margin-top: 10px !important; } .contactofpay:hover{ background: #3aae2a !important; } .contactoligo { font-size: 15px !important; display: grid !important; background: #43ff8e !important; color: #5a5a5a !important; border-radius: 8px !important; line-height: 1.1 !important; padding: 8px 1% !important; text-decoration:none !important; text-transform: initial !important; font-weight: bold !important; box-shadow: rgba(0, 0, 0, 0.07) 0px 1px 1px, rgba(0, 0, 0, 0.07) 0px 2px 2px, rgba(0, 0, 0, 0.07) 0px 4px 4px, rgba(0, 0, 0, 0.07) 0px 8px 8px, rgba(0, 0, 0, 0.07) 0px 16px 16px; transition: all 0.3s ease-in-out !important; text-align: center !important; margin-top: 10px !important; } .contactoligo:hover{ background: #ffffff !important; } .selloseguridad{ width: 100% !important; height: 40px !important; background-image: url(https://i.postimg.cc/y62NrQPy/certificadopago-2021.png) !important; background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; } body.woocommerce-order-received .descriyape, body.woocommerce-order-pay .descriyape, body.woocommerce-order-received .descriplin, body.woocommerce-order-pay .descriplin, body.woocommerce-order-received .descritunki, body.woocommerce-order-pay .descritunki, body.woocommerce-order-received .describim, body.woocommerce-order-pay .describim, body.woocommerce-order-received .descriagora, body.woocommerce-order-pay .descriagora, body.woocommerce-order-received .descrifpay, body.woocommerce-order-pay .descrifpay, body.woocommerce-order-received .descriligo, body.woocommerce-order-pay .descriligo{ width: 501px !important; margin: auto !important; } @media screen and (min-width: 5px) and (max-width: 500px){ .descriyape, .descriplin, .descritunki, .describim, .descriagora, .descrifpay, .descriligo{ text-align:center; } .logoyape, .descripcion{ width: 100% !important; float: none !important; } .logoyape img{ width: 70% !important; height: 70% !important; max-height: 90% !important; margin-right: 15% !important; margin-left:15% !important; margin-bottom:10px !important; } a.estiloyape{ width: 150px; } .titularyapeplin, .titularfpay{ width: 80% !important; margin-right: 10% !important; margin-left:10% !important; } body.woocommerce-order-received .descriyape, body.woocommerce-order-pay .descriyape, body.woocommerce-order-received .descriplin, body.woocommerce-order-pay .descriplin, body.woocommerce-order-received .descritunki, body.woocommerce-order-pay .descritunki, body.woocommerce-order-received .describim, body.woocommerce-order-pay .describim, body.woocommerce-order-received .descriagora, body.woocommerce-order-pay .descriagora, body.woocommerce-order-received .descrifpay, body.woocommerce-order-pay .descrifpay, body.woocommerce-order-received .descriligo, body.woocommerce-order-pay .descriligo{ width: 100% !important; } } </style> <?php } ); //Funcion de iconos para medios de pagos// add_filter ('woocommerce_gateway_icon', function ($contenido, $id) { if ('yapepay' == $id) return '<img src="https://www.solutionmaker.org/wp-content/uploads/pagoconyape.png" alt="Pago con Yape">'; return $contenido; }, 10, 2); add_filter ('woocommerce_gateway_icon', function ($contenido, $id) { if ('plinpay' == $id) return '<img src="https://www.solutionmaker.org/wp-content/uploads/pagoconplin.png" alt="Pago con Plin">'; return $contenido; }, 10, 2); add_filter ('woocommerce_gateway_icon', function ($contenido, $id) { if ('tunkipay' == $id) return '<img src="https://i.postimg.cc/W1x7s5PG/tunki-medpa.png" alt="Pago con Tunki">'; return $contenido; }, 10, 2); add_filter ('woocommerce_gateway_icon', function ($contenido, $id) { if ('bimpay' == $id) return '<img src="https://i.postimg.cc/VsSjqq4d/pagoconbim.png" alt="Pago con Bim">'; return $contenido; }, 10, 2); add_filter ('woocommerce_gateway_icon', function ($contenido, $id) { if ('agorapay' == $id) return '<img src="https://www.solutionmaker.org/wp-content/uploads/iconoagora.png" alt="Pago con Agora">'; return $contenido; }, 10, 2); add_filter ('woocommerce_gateway_icon', function ($contenido, $id) { if ('fpaypay' == $id) return '<img src="https://www.solutionmaker.org/wp-content/uploads/medpa-fpay.png" alt="Pago con Fpay">'; return $contenido; }, 10, 2); add_filter ('woocommerce_gateway_icon', function ($contenido, $id) { if ('ligopay' == $id) return '<img src="https://www.solutionmaker.org/wp-content/uploads/pagoligo.png" alt="Pago con Ligo">'; return $contenido; }, 10, 2);
- 2 conectores LPT macho
- Manual
DESCARGAS
Valoraciones
No hay valoraciones aún.