'_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;
}
En esta guía reveladora, encontrarás una amplia gama de estrategias probadas y recomendaciones expertas para superar el estrés y lograr una vida más equilibrada. Ya sea que te enfrentes a tensiones laborales, problemas familiares o simplemente busques mejorar tu salud mental, este infoproducto te proporcionará las claves para tomar el control de tu bienestar emocional.
¿Estás luchando con el estrés abrumador y necesitas encontrar una forma efectiva de recuperar tu bienestar emocional y físico? Nuestro infoproducto PLR te ofrece un completo kit de herramientas para enfrentar y aliviar el estrés en tu vida diaria.
En esta guía reveladora, encontrarás una amplia gama de estrategias probadas y recomendaciones expertas para superar el estrés y lograr una vida más equilibrada. Ya sea que te enfrentes a tensiones laborales, problemas familiares o simplemente busques mejorar tu salud mental, este infoproducto te proporcionará las claves para tomar el control de tu bienestar emocional.
¡No dejes que el estrés controle tu vida y recupera tu bienestar!
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.