File: //proc/1526/task/1920/cwd/linde-ai/wp-content/plugins/linde-site-plugin/index.php
<?php
/*
Plugin Name: Linde Site Plugin
Description: The site plugin for Linde AI website containing custom post types, custom fields and specific features
Version: 1.0
Author: Linde
Text Domain: linde
*/
if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}
// Remove Posts from admin sidebar menu
add_action('admin_menu', function(){
    remove_menu_page('edit.php');
});
// Register new post types
add_action( 'init', function() {
    register_post_type('linde_use_case', array(
        'labels' => array(
            'name' => __('Use Cases', 'linde'),
            'singular_name' => __('Use Cases', 'linde'),
        ),
        'public' => true,
        'show_in_menu' => true,
        'supports' => array( 'title', 'thumbnail', 'custom-fields' ),
        'has_archive' => true,
        "map_meta_cap" => true,
        'rewrite' => array('slug' => 'use-cases','with_front' => false),
    ));
    register_post_type('linde_product', array(
        'labels' => array(
            'name' => __('Products', 'linde'),
            'singular_name' => __('Product', 'linde'),
        ),
        'public' => true,
        'show_in_menu' => true,
        'supports' => array( 'title', 'thumbnail', 'custom-fields' ),
        'has_archive' => true,
        "map_meta_cap" => true,
    ));
    register_taxonomy( 'linde_division', 'linde_use_case', array(
        'labels' => array(
            'name'          => __('Divisions', 'linde'),
            'singular_name' => __('Division', 'linde'),
            'add_new_item'  => __('Add New Division', 'linde'),
            'edit_item'     => __('Edit Division', 'linde'),
            'new_item'      => __('New Division', 'linde'),
            'view_item'     => __('View Division', 'linde'),
            'view_items'    => __('View Divisions', 'linde'),
            'search_items'  => __('Search Divisions', 'linde'),
            'not_found'     => __('No Divisions found', 'linde'),
            'all_items'     => __('All Divisions', 'linde')
        ),
        'hierarchical' => false
    ));
    register_taxonomy( 'linde_status', 'linde_use_case', array(
        'labels' => array(
            'name'          => __('Status', 'linde'),
            'singular_name' => __('Status', 'linde'),
            'add_new_item'  => __('Add New Status', 'linde'),
            'edit_item'     => __('Edit Status', 'linde'),
            'new_item'      => __('New Status', 'linde'),
            'view_item'     => __('View Status', 'linde'),
            'view_items'    => __('View Status', 'linde'),
            'search_items'  => __('Search Status', 'linde'),
            'not_found'     => __('No Status found', 'linde'),
            'all_items'     => __('All Status', 'linde')
        ),
        'hierarchical' => false
    ));
});
// Save ACF fields in JSON
add_filter('acf/settings/save_json', 'linde_acf_json_save_point');
function linde_acf_json_save_point( $path ) {
    // update path
    $path = plugin_dir_path(__FILE__) . 'acf-json';
    return $path;
}
// Load ACF fields from JSON
add_filter('acf/settings/load_json', 'linde_acf_json_load_point');
function linde_acf_json_load_point( $paths ) {
    // remove original path (optional)
    unset($paths[0]);
    // append path
    $paths[] = plugin_dir_path(__FILE__) . 'acf-json';
    return $paths;
}
add_action( 'acf/init', function(){
    if( function_exists('acf_add_options_page') ) {
         acf_add_options_page(array(
            'page_title' => __( 'Theme settings', 'linde' ),
            'menu_title' => __( 'Theme settings', 'linde' ),
            'menu_slug'  => 'theme-settings',
             "capability" => 'manage_options'
        ));
    }
  });
//Ajax calls
add_action( 'wp_ajax_get_use_cases', 'get_use_cases' );
add_action( 'wp_ajax_nopriv_get_use_cases', 'get_use_cases' );
function get_use_cases(){
    $target = $_POST['target'];
    $args = array(
        'post_type' => 'linde_use_case',
        'posts_per_page' => 9,
        'paged' => $target,
        'orderby' => 'date',
        'order' => 'DESC'
    );
    $data = Timber::get_context();
    $data['cases'] = new Timber\PostQuery($args);
    $response = array();
    ob_start();
    Timber::render('partials/cases.twig', $data);
    $response[] = ob_get_clean();
    ob_start();
    Timber::render('partials/single-cases.twig', $data);
    $response[] = ob_get_clean();
    echo json_encode($response);
    wp_die();
}
?>