?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 );
Quiénes Somos - ApacoopOmitir e ir al contenido
Quiénes Somos
¿QUIÉNES SOMOS?
sub title
[mostrar_titulo]
APACOOP R.L. tiene sus raíces en 1981, cuando un grupo de 11 productores visionarios de Santa Cruz de León Cortés conformó la Asociación APACO, con el propósito de fortalecer la producción agrícola local. Con el paso del tiempo y el crecimiento de los asociados, en el año 2008 la organización dio un paso trascendental al constituirse como la Cooperativa APACOOP R.L., manteniendo la misma esencia de compromiso y servicio.
Hoy con más de 1200 asociados y un equipo de colaboradores comprometidos, somos un motor de desarrollo sostenible para la Zona de los Santos. Impulsamos la diversificación agrícola y el valor agregado, posicionando al aguacate como nuestro producto insignia, sin dejar de lado otros cultivos y servicios que fortalecen la economía y el bienestar de nuestra comunidad. Nuestro trabajo está respaldado por certificaciones internacionales que garantizan calidad, sostenibilidad y responsabilidad social, y guiados por nuestro lema: Productores apoyando productores.
Nuestra Misión
Ampliar las posibilidades productivas y comerciales de nuestros asociados (as) con una cooperativa modelo para generar bienestar socioeconómico ambiental que impulse la actividad agrícola sostenible y el acceso a bienes y servicios múltiples valorados por nuestro grupo de interés.
Nuestra Visión
Potenciar el orgullo y legado agrícola de nuestra gente con excelencia, diversificando y agregando valores para crear un futuro integral y sostenible en la vida de nuestros asociados, colaboradores o clientes.