'_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;
}
¡Sumérgete en el espíritu mágico de Halloween con la “Pack de Halloween para Niños”! Esta emocionante combinación de infoproductos PLR incluye dos recursos encantadores diseñados para brindar horas de diversión y entretenimiento a niños de todas las edades durante la temporada de Halloween.
La “Colección de Halloween para Niños” es la elección perfecta para celebrar la temporada de Halloween con una combinación de actividades educativas y creativas. Ya sea que desees ofrecer estos recursos a niños como parte de tus servicios educativos o estés buscando una oferta emocionante para tu audiencia, esta colección PLR proporciona una experiencia mágica de Halloween. ¡Deja que los niños exploren su imaginación y celebren Halloween de una manera única y divertida!
INCLUYE: Libro de 100 actividades de Halloween para niños y 150 castillos de Halloween para colorear.
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.