?php /** * Theme functions and definitions. * * For additional information on potential customization options, * read the developers' documentation: * * https://developers.elementor.com/docs/hello-elementor-theme/ * * @package HelloElementorChild */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } define( 'HELLO_ELEMENTOR_CHILD_VERSION', '2.0.0' ); /** * Load child theme scripts & styles. * * @return void */ function hello_elementor_child_scripts_styles() { wp_enqueue_script( 'custom-script', get_stylesheet_directory_uri() . '/custom.js', array( 'jquery' ) ); wp_enqueue_style( 'hello-elementor-child-style', get_stylesheet_directory_uri() . '/style.css', [ 'hello-elementor-theme-style', ], HELLO_ELEMENTOR_CHILD_VERSION ); } add_action( 'wp_enqueue_scripts', 'hello_elementor_child_scripts_styles', 20 ); function acfcustom_fn($atts) { // Definimos los atributos predeterminados $atts = shortcode_atts( array( 'field' => '', 'post_id' => get_the_ID(), ), $atts ); // Inicializamos $output y asignamos el valor del campo ACF $output = ''; if (!empty($atts['field'])) { $output .= get_field($atts['field'], $atts['post_id']); } return $output; } add_shortcode('acfcustom', 'acfcustom_fn'); function mostrar_titulo_acf_shortcode() { // 1. Obtener el valor del campo ACF 'titulo' para la página/post actual. $titulo_acf = get_field('titulo'); // 2. Comprobar si el campo ACF está vacío (incluyendo nulo, falso, o cadena vacía). if ( empty( $titulo_acf ) ) { // Si está vacío: Obtener y retornar el título por defecto del post/página. $titulo_pagina = get_the_title(); return '

' . esc_html( $titulo_pagina ) . '

'; } else { // Si NO está vacío: Retornar el valor del campo ACF. return '

' . esc_html( $titulo_acf ) . '

'; } } // 3. Registrar el shortcode para que pueda usarse como [mostrar_titulo]. add_shortcode( 'mostrar_titulo', 'mostrar_titulo_acf_shortcode' ); function agregar_clase_interior_al_body( $classes ) { // La función is_front_page() verifica si es la página frontal estática O la página de inicio de blog. // Si NO es la página frontal, agrega la clase 'internas'. if ( ! is_front_page() ) { // Añade tu clase personalizada al array de clases $classes[] = 'internas'; } // Alternativamente, si tu página de inicio es el índice de entradas del blog, // puedes usar is_home(): /* if ( ! is_home() ) { $classes[] = 'internas'; } */ return $classes; } add_filter( 'body_class', 'agregar_clase_interior_al_body' ); /** * Agrega una clase al body si la categoría de producto de WooCommerce es la última hija (sin subcategorías). * * @param array $classes Clases CSS existentes para el body. * @return array Las clases CSS modificadas. */ function agregar_clase_ultima_subcategoria_wc( $classes ) { // 1. Verificar si estamos en una página de archivo de categoría de producto de WooCommerce if ( is_product_category() ) { // 2. Obtener el objeto de la categoría consultada actualmente $current_term = get_queried_object(); // Asegurarse de que tenemos un objeto y es de la taxonomía correcta if ( $current_term && $current_term->taxonomy === 'product_cat' ) { // 3. Verificar si la categoría actual tiene hijos (subcategorías) // Usamos get_terms para buscar términos hijos con el ID de la categoría actual como 'parent' $children = get_terms( 'product_cat', array( 'parent' => $current_term->term_id, 'hide_empty' => false // Queremos saber si existen, aunque estén vacías ) ); // 4. Si la categoría NO tiene hijos, es la "última hija" o una categoría de nivel superior sin hijos. // Para ser una "última hija" en el contexto de una jerarquía, debe no tener hijos. if ( empty( $children ) ) { $classes[] = 'no-tiene-subcategorias'; } else { $classes[] = 'si-tiene-subcategorias'; } } } return $classes; } add_filter( 'body_class', 'agregar_clase_ultima_subcategoria_wc' ); function disable_comments_globally() { // Cierra comentarios en todos los tipos de publicación $post_types = get_post_types(); foreach ($post_types as $post_type) { if(post_type_supports($post_type, 'comments')) { remove_post_type_support($post_type, 'comments'); remove_post_type_support($post_type, 'trackbacks'); } } } add_action('admin_init', 'disable_comments_globally'); // Elimina la caja de comentarios del frontend function filter_comment_form_output( $output ) { return ''; } add_filter( 'comment_form_defaults', 'filter_comment_form_output', 20 ); // Ocultar elementos relacionados con comentarios en el menú de administración function disable_comments_admin_menu() { remove_menu_page('edit-comments.php'); // Elimina la opción 'Comentarios' del menú principal remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); // Elimina el widget del escritorio } add_action('admin_menu', 'disable_comments_admin_menu'); function disable_comments_redirection() { if ( is_singular() && comments_open() ) { // Redirecciona si la página tiene comentarios abiertos (solo para prevenir) wp_redirect( home_url() ); exit; } // Bloquea el intento de envío directo if ( is_admin() ) { return; } if ( ! empty( $_SERVER['SCRIPT_FILENAME'] ) && 'wp-comments-post.php' == basename( $_SERVER['SCRIPT_FILENAME'] ) ) { wp_redirect( home_url() ); exit; } } add_action( 'template_redirect', 'disable_comments_redirection' ); function my_login_redirect( $redirect_to, $request, $user ) { // Check if the user is an admin if ( isset( $user->roles ) && is_array( $user->roles ) ) { if ( in_array( 'autor', $user->roles ) ) { return $redirect_to; // Send admins to the default dashboard } else { return home_url( '/wp-admin/edit.php' ); // Send everyone else here } } return $redirect_to; } add_filter( 'login_redirect', 'my_login_redirect', 10, 3 ); Boletín Informativo Enero, 2026 - Apacoop

Boletín Informativo Enero, 2026

titulos internos

sub title

[mostrar_titulo]

Boletín Informativo Enero, 2026

Nuevas Alianzas

APACOOP Internacional

Los Días 29 y 30 de enero, nuestra Gerente General Cindy Gamboa Jiménez y el Gerente Comercial Ronny Mena Fonseca representaron a APACOOP R.L. en la Rueda de Negocios de América Latina y el Caribe, realizada en Panamá.

Un encuentro que reúnio a compradores del sector agroindustrial, convirtiéndose en una valiosa oportunidad para fortalecer relaciones comerciales, explorar nuevos mercados y proyectar la calidad de los productos de nuestros asociados a nivel internacional.

Apoyamos el regreso a clases de nuestras familias asociadas

Como parte de nuestro compromiso con el bienestar social y el desarrollo de nuestras comunidades, el Comité de Educación y Bienestar Social impulsó una iniciativa especial para apoyar el regreso a clases.

A través de una rifa dirigida a los hijos e hijas de nuestras personas asociadas, se entregaron diez paquetes escolares, brindando un respaldo significativo en esta etapa tan importante para las familias.

Esta acción refleja el impacto social que promovemos como cooperativa y nuestro firme interés en contribuir con la educación, reconociendo que invertir en el futuro de la niñez y la adolescencia es también fortalecer el progreso de nuestra comunidad.

En APACOOP R.L. continuamos impulsando iniciativas que reafirman nuestros valores cooperativos, trascendiendo más allá de los servicios para acompañar el bienestar y desarrollo de cada familia asociada.

Nuevo diseño que nos representa en cada camino

Como parte de las recientes adquisiciones de la cooperativa, uno de nuestros camiones ya cuenta con su nuevo rotulado institucional, un diseño que proyecta nuestra identidad, el compromiso con nuestros productores y la calidad de los servicios que brindamos.

Más que un cambio visual, este rotulado simboliza el esfuerzo conjunto que impulsa a APACOOP R.L. a seguir creciendo y fortaleciendo su presencia en las comunidades donde servimos.

Continuamos avanzando con paso firme, llevando nuestra esencia a cada destino y reafirmando nuestro propósito de ser productores apoyando a productores.

El pasado sábado 31 de enero vivimos un momento muy especial para Turiaguacate con la visita de la influencer de viajes Katro Trips, quien conoció de primera mano esta experiencia impulsada por APACOOP R.L.

Durante su recorrido, tuvo la oportunidad de conectarse con la esencia del proyecto, descubrir el trabajo que hay detrás de nuestra producción y compartir una vivencia auténtica ligada al campo y al esfuerzo de nuestras familias productoras.

Esta visita representa un paso estratégico para dar a conocer Turiaguacate a nuevas audiencias, fortaleciendo su proyección y consolidándolo como una experiencia que combina innovación, desarrollo local y orgullo cooperativo.

Con acciones como esta, continuamos abriendo camino hacia nuevas oportunidades, promoviendo iniciativas que impulsan el crecimiento y generan valor para la Zona de los Santos.