HEX
Server: Apache
System: Linux webd003.cluster128.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: slyfwmm (169339)
PHP: 8.1.34
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/slyfwmm/studiomilighetti/wp-content/themes/domik/includes/ajax-callback.php
<?php

add_action('wp_ajax_nopriv_domik_lm_folio', 'domik_lm_folio_callback');
add_action('wp_ajax_domik_lm_folio', 'domik_lm_folio_callback');

function domik_lm_folio_callback(){

    $output = array();
    $output['status'] = 'fail';
    if ( ! isset( $_POST['_lmnonce'] ) || ! wp_verify_nonce( $_POST['_lmnonce'], 'domik_lm_folio' ) ) {
        // This nonce is not valid.
        $output['content'] = esc_html__('Sorry, your nonce did not verify.','domik' );
        $output['is_remaining'] = 'no';
    } else {
        // The nonce was valid.
        // Do stuff here.
        $default_args = array(
            'post_type' => 'portfolio',
            'paged' => 1,
            'posts_per_page'=> 3,
            'post__in' => array(),
            'post__not_in' => array(),
            'orderby'=> 'date',
            'order'=> 'DESC',
            'cat'=> '',
            'lmore_items'=> 3,
        );

        $args = wp_parse_args( $_POST['wp_query'], $default_args );

        $lmore_items = $args['lmore_items'];

        if(isset($args['additional_vars'])){
            $additional_vars = $args['additional_vars'];
            unset($args['additional_vars']);
        }

        // if(isset($args['folio_style'])){
        //     $folio_style = $args['folio_style'];
        //     unset($args['folio_style']);
        // }else{
        //     $folio_style = 'style1';
        // }
        
        unset($args['action']);
        unset($args['lmore_items']);
        

        $args['offset'] = $current_offset = $args['posts_per_page'] + $lmore_items*($_POST['click_num']-1);
        $args['posts_per_page'] = $lmore_items;

        $folio_posts = new WP_Query($args);
        ob_start(); 
        if($folio_posts->have_posts()) : 
            
            while($folio_posts->have_posts()) : $folio_posts->the_post(); 
                
                if(isset($additional_vars)){
                    domik_get_template_part('template-parts/folio/list', '', $additional_vars); 
                }else{
                    get_template_part( 'template-parts/folio/list', '' );
                }

            endwhile;

        endif;

        $output['status'] = 'success';

        $output['content'] = ob_get_clean();

        //check for remaining items
        if($folio_posts->found_posts && $folio_posts->found_posts > $current_offset + $lmore_items){
            $output['is_remaining'] = 'yes';
        }else{
            $output['is_remaining'] = 'no';
        }

        wp_reset_postdata();
    }

    wp_send_json( $output );
}

add_action('wp_ajax_nopriv_domik_lm_gal', 'domik_lm_gal_callback');
add_action('wp_ajax_domik_lm_gal', 'domik_lm_gal_callback');

function domik_lm_gal_callback(){
    $output = array();
    $output['status'] = 'fail';
    $output['content'] = '';
    $output['is_remaining'] = 'no';
    if ( ! isset( $_POST['_lmnonce'] ) || ! wp_verify_nonce( $_POST['_lmnonce'], 'domik_lm_gal' ) ) {
        // This nonce is not valid.
        $output['content'] = esc_html__('Sorry, your nonce did not verify.','domik' );
        $output['is_remaining'] = 'no';
    } else {
        // The nonce was valid.
        // Do stuff here.
        $default_args = array(
            'images' => '',
            'lmore_items'=> 3,
        );

        $args = wp_parse_args( $_POST['wp_query'], $default_args );
        $lmore_items = $args['lmore_items'];
        $lmore_images = $args['images'];
        $loaded = $args['loaded'];

        if(isset($args['disable_title'])){
            $disable_title = $args['disable_title'];
        }else{
            $disable_title = 'no';
        }


        $loaded += $lmore_items*($_POST['click_num']-1);
        $new_loaded = $loaded + $lmore_items;

        if(!empty($lmore_images)){

            $images = explode(",", $lmore_images);


            if(!empty($images)) : 

                $imgatts = array('class'=>'respimg');

            ob_start(); 

            foreach ($images as $key => $img) {
                if($key >= $loaded && $key < $new_loaded) {
                    if($disable_title == 'yes'){
                        $imgtitle  = '';
                    }else{
                        $imgtitle  = get_the_title($img );
                    }

                    $image_alt =    get_post_meta($img, '_wp_attachment_image_alt', true);
                    $item_w = '';
                    $item_image_w = 'folio-size-one';
                    if(strpos($image_alt, "gallery-item-second") !== false){
                        $item_w = 'gallery-item-second';
                        $item_image_w = 'folio-size-second';
                    }
                    if(strpos($image_alt, "gallery-item-three") !== false){
                        $item_w = 'gallery-item-three';
                        $item_image_w = 'folio-size-three';
                    }
                    if(strpos($image_alt, "gallery-item-one-tall") !== false){
                        
                        $item_image_w = 'folio-size-one-tall';
                    }
                
                    ?>
                    <div class="gallery-item <?php echo esc_attr($item_w );?>">
                        <div class="grid-item-holder">
                            <div class="box-item">
                                <a href="<?php echo esc_url(wp_get_attachment_url( $img ) );?>" title="<?php echo esc_attr($imgtitle );?>">
                                <span class="overlay"></span> 
                                <?php echo wp_get_attachment_image( $img, $item_image_w , false, $imgatts );?>
                                </a>
                            </div>
                        </div>
                    </div>

        <?php
                }

            }

            if($key >= $new_loaded){
                $output['is_remaining'] = 'yes';
            }

            $output['content'] = ob_get_clean();

            endif;

        }


        $output['status'] = 'success';

    }
    wp_send_json( $output );

}


add_action('wp_ajax_nopriv_domik_get_vc_attach_images', 'domik_get_vc_attach_images_callback');
add_action('wp_ajax_domik_get_vc_attach_images', 'domik_get_vc_attach_images_callback');

function domik_get_vc_attach_images_callback() {
    $images = $_POST['images'];
    $html = $images;
    if($images != '') {
        $images = explode(",", $images);
        if(count($images)){
            $html = '';
            foreach ($images as $key => $img) {
                $html .= wp_get_attachment_image( $img, 'thumbnail', '', array('class'=>'domik-ele-attach-thumb') );
            }
        }
    }
    wp_send_json($html );
}