add_action('woocommerce_before_add_to_cart_button', 'agregar_checkbox_flores');
function agregar_checkbox_flores() {
global $product;
// Define la categoría específica a la que se aplicará el checkbox
$categoria_especifica = 'nuevo_categoria'; // Reemplaza 'nombre_de_la_categoria' con el nombre de tu categoría
// Verifica si el producto pertenece a la categoría específica
if (has_term($categoria_especifica, 'product_cat', $product->get_id())) {
echo '';
echo '';
echo '';
}
}
// Procesar el valor adicional al carrito cuando se selecciona el checkbox
add_filter('woocommerce_add_cart_item_data', 'procesar_valor_adicional', 10, 3);
function procesar_valor_adicional($cart_item_data, $product_id, $variation_id) {
if (isset($_POST['agregar_flores']) && $_POST['agregar_flores'] === 'si') {
// Agrega el costo adicional al carrito, pero no al precio del producto
$cart_item_data['custom_data']['agregar_flores'] = true;
$cart_item_data['custom_data']['costo_adicional_flores'] = 20; // Cambia "20" al costo real de las flores
}
return $cart_item_data;
}
// Mostrar el costo adicional de las flores en el resumen del pedido del checkout
add_action('woocommerce_review_order_after_order_total', 'mostrar_costo_adicional_checkout');
function mostrar_costo_adicional_checkout() {
$costo_adicional_flores = 0;
// Recorre los elementos del carrito para obtener el costo adicional
foreach (WC()->cart->get_cart() as $cart_item) {
if (isset($cart_item['custom_data']['agregar_flores']) && $cart_item['custom_data']['agregar_flores'] === true) {
$costo_adicional_flores += $cart_item['custom_data']['costo_adicional_flores'];
}
}
}
// Actualizar el precio total en el checkout
add_action('woocommerce_cart_calculate_fees', 'actualizar_precio_total_checkout');
function actualizar_precio_total_checkout() {
$costo_adicional_flores = 0;
// Recorre los elementos del carrito para obtener el costo adicional
foreach (WC()->cart->get_cart() as $cart_item) {
if (isset($cart_item['custom_data']['agregar_flores']) && $cart_item['custom_data']['agregar_flores'] === true) {
$costo_adicional_flores += $cart_item['custom_data']['costo_adicional_flores'];
}
}
// Agrega el costo adicional al total del checkout
if ($costo_adicional_flores > 0) {
WC()->cart->add_fee('Costo Adicional', $costo_adicional_flores);
}
}
//opcional
// Función para mostrar el valor adicional de las flores en correos electrónicos
function mostrar_valor_adicional_en_correos($order, $sent_to_admin, $plain_text, $email) {
// Verifica si la orden contiene el valor adicional de las flores
$valor_adicional_flores = '';
foreach ($order->get_items() as $item_id => $item) {
if (isset($item['custom_data']['agregar_flores']) && $item['custom_data']['agregar_flores'] === true) {
$valor_adicional_flores = '20'; // Cambia "20" al costo real de las flores
break;
}
}
// Si se encontró el valor adicional de las flores, agrégalo al correo
if (!empty($valor_adicional_flores)) {
// Agrega una línea separadora
$email['body'] .= "\n-----------------\n";
// Agrega el valor adicional al correo con una descripción
$email['body'] .= __('Valor Adicional:', 'woocommerce') . ' ' . wc_price($valor_adicional_flores);
// Agrega otra línea separadora
$email['body'] .= "\n-----------------\n";
}
return $email;
}
// Hook para mostrar el valor adicional en correos electrónicos
add_filter('woocommerce_email_order_details', 'mostrar_valor_adicional_en_correos', 10, 4);
// Agregar una columna personalizada para mostrar el costo adicional en la lista de pedidos
function agregar_columna_costo_adicional($columns) {
$columns['costo_adicional'] = __('Costo Adicional', 'woocommerce');
return $columns;
}
add_filter('manage_edit-shop_order_columns', 'agregar_columna_costo_adicional', 999);
// Mostrar el valor adicional en la columna personalizada
function mostrar_valor_adicional_en_columna($column, $post_id) {
if ($column === 'costo_adicional') {
// Obtén el valor adicional de las flores para este pedido
$valor_adicional_flores = get_post_meta($post_id, '_costo_adicional_flores', true);
// Muestra el valor adicional en la columna
echo wc_price($valor_adicional_flores);
}
}
add_action('manage_shop_order_posts_custom_column', 'mostrar_valor_adicional_en_columna', 10, 2);
// Haz que la columna sea ordenable
function hacer_columna_ordenable($columns) {
$columns['costo_adicional'] = 'costo_adicional';
return $columns;
}
add_filter('manage_edit-shop_order_sortable_columns', 'hacer_columna_ordenable');
Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional
Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos.El almacenamiento o acceso técnico que se utiliza exclusivamente con fines estadísticos anónimos. Sin un requerimiento, el cumplimiento voluntario por parte de tu proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarte.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.