HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/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();
}

?>