'_precio_dinamico_inicial',
'label' => __('Precio Inicial para Dinámico', 'woocommerce'),
'desc_tip' => 'true',
'description' => __('Introduce el precio inicial para el descuento dinámico.', 'woocommerce'),
'type' => 'number',
'custom_attributes' => array('step' => 'any')
));
// Agregar campo para el precio mínimo
woocommerce_wp_text_input( array(
'id' => '_precio_dinamico_minimo',
'label' => __('Precio Mínimo para Dinámico', 'woocommerce'),
'desc_tip' => 'true',
'description' => __('Introduce el precio mínimo al que puede bajar.', 'woocommerce'),
'type' => 'number',
'custom_attributes' => array('step' => 'any')
));
// Agregar campo para el descuento por segundo
woocommerce_wp_text_input( array(
'id' => '_descuento_por_segundo',
'label' => __('Descuento por Segundo', 'woocommerce'),
'desc_tip' => 'true',
'description' => __('Introduce la cantidad que baja el precio por segundo.', 'woocommerce'),
'type' => 'number',
'custom_attributes' => array('step' => 'any')
));
}
// Guardar los valores de los campos personalizados
add_action('woocommerce_process_product_meta', 'guardar_campos_personalizados_precio_dinamico');
function guardar_campos_personalizados_precio_dinamico($post_id) {
// Obtener y guardar el precio inicial
$precio_inicial = isset($_POST['_precio_dinamico_inicial']) ? sanitize_text_field($_POST['_precio_dinamico_inicial']) : '';
update_post_meta($post_id, '_precio_dinamico_inicial', $precio_inicial);
// Obtener y guardar el precio mínimo
$precio_minimo = isset($_POST['_precio_dinamico_minimo']) ? sanitize_text_field($_POST['_precio_dinamico_minimo']) : '';
update_post_meta($post_id, '_precio_dinamico_minimo', $precio_minimo);
// Obtener y guardar el descuento por segundo
$descuento_por_segundo = isset($_POST['_descuento_por_segundo']) ? sanitize_text_field($_POST['_descuento_por_segundo']) : '';
update_post_meta($post_id, '_descuento_por_segundo', $descuento_por_segundo);
}
// Aplicar el precio dinámico al producto
add_filter('woocommerce_get_price_html', 'precio_dinamico_ciclo_personalizado', 10, 2);
function precio_dinamico_ciclo_personalizado($precio, $producto) {
// Verificar si el precio dinámico está activado para este producto
$precio_dinamico_activado = get_post_meta($producto->get_id(), '_precio_dinamico_activado', true);
if ($precio_dinamico_activado === 'yes') {
// Obtener los valores personalizados
$precio_inicial = get_post_meta($producto->get_id(), '_precio_dinamico_inicial', true);
$precio_minimo = get_post_meta($producto->get_id(), '_precio_dinamico_minimo', true);
$descuento_por_segundo = get_post_meta($producto->get_id(), '_descuento_por_segundo', true);
// Valor por defecto si no se establecieron
$precio_inicial = $precio_inicial ? $precio_inicial : $producto->get_regular_price();
$precio_minimo = $precio_minimo ? $precio_minimo : 10;
$descuento_por_segundo = $descuento_por_segundo ? $descuento_por_segundo : 0.001;
// Obtener el tiempo de inicio desde el custom field del producto
$tiempo_inicio = get_post_meta($producto->get_id(), '_tiempo_inicio_descuento', true);
if (!$tiempo_inicio) {
$tiempo_inicio = time(); // Si no existe, inicializar con la hora actual
update_post_meta($producto->get_id(), '_tiempo_inicio_descuento', $tiempo_inicio);
}
$tiempo_actual = time(); // Hora actual
$nuevo_precio = $precio_inicial - (($tiempo_actual - $tiempo_inicio) * $descuento_por_segundo);
// Si el precio ha llegado al mínimo, reiniciar al precio inicial y el tiempo
if ($nuevo_precio <= $precio_minimo) {
$nuevo_precio = $precio_inicial;
$tiempo_inicio = time(); // Reiniciar el tiempo de descuento
update_post_meta($producto->get_id(), '_tiempo_inicio_descuento', $tiempo_inicio);
}
// Actualizar el precio del producto
$producto->set_price($nuevo_precio);
return wc_price($nuevo_precio);
}
// Si el precio dinámico no está activado, devuelve el precio normal
return $precio;
}
¿Estás cansado de luchar por atraer visitantes a tu sitio web y no ver los resultados que deseas? ¡Es hora de llevar tu estrategia de atracción de tráfico al siguiente nivel con nuestras “Tácticas Renegadas de tráfico “!
En el competitivo mundo digital actual, el tráfico es la clave para el éxito en línea. Nuestro exclusivo infoproducto te ofrece una serie de tácticas innovadoras y poco convencionales que te ayudarán a impulsar el tráfico de manera efectiva y sorprendente.
¿Estás cansado de luchar por atraer visitantes a tu sitio web y no ver los resultados que deseas? ¡Es hora de llevar tu estrategia de atracción de tráfico al siguiente nivel con nuestras “Tácticas Renegadas de tráfico “!
En el competitivo mundo digital actual, el tráfico es la clave para el éxito en línea. Nuestro exclusivo infoproducto te ofrece una serie de tácticas innovadoras y poco convencionales que te ayudarán a impulsar el tráfico de manera efectiva y sorprendente.
¡Ya no es momento de conformarse con las mismas estrategias tradicionales de atracción de tráfico! Con “Tácticas Renegadas de tráfico “, obtendrás el conocimiento necesario para llevar a tu sitio web al siguiente nivel y superar a la competencia.
¡Si estás listo para aumentar significativamente el tráfico de tu página web y lograr el éxito en línea que te mereces, este infoproducto es tu clave para hacerlo!
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede obtener más información, o bien conocer cómo cambiar la configuración de su navegador.
Functional
Siempre activo
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Reviews
There are no reviews yet.