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/zaklada/wp-content/plugins/dinamo-foundation-plugin/heart-messages/messages_service.php
<?php

Class dinamo_donator_messages_service
{

    function __construct()
    {

    }

    // Create Message
    function create_message($message, $language){
        global $wpdb;
        $table_name = $wpdb->prefix . 'dinamo_donator_messages';

         $wpdb->insert(
            $table_name,
            array(
                'message'  => $message,
                'approved' => false,
                'language' => $language,
                'time'     => current_time('mysql', 1),
            ),
            array(
                '%s',
                '%d',
                '%s',
                '%s'
            )
        );

        return $wpdb->insert_id;
    }

    // Set Message approve status
    function set_message_approve_status($message_id, $status){

        global $wpdb;
        $table_name = $wpdb->prefix . 'dinamo_donator_messages'; 
        $wpdb->update($table_name, array('approved'=>$status), array('id'=>$message_id));

    }

    // Get Message
    function get_message($message_id){
      global $wpdb;
      $table_name = $wpdb->prefix . 'dinamo_donator_messages';
      $sql = "SELECT * FROM $table_name WHERE id = $message_id";

      $data = $wpdb->get_row($sql);

      if($data){
          return $data;
      }else{
          return false;
      }

    }    

    // Get filtered Messages (for admin messages table pagination)
    function get_filter_messages($pageSize, $page, $language) {
      global $wpdb;
      $table_name = $wpdb->prefix . 'dinamo_donator_messages';
      $language_sql = ($language == "hr") ? "(language = '" . $language . "' OR language IS NULL)" : " language = '" . $language . "'";  
      
      $offset = ($page - 1) * $pageSize;

      $sql = "SELECT * FROM $table_name WHERE $language_sql ORDER BY id DESC" ;
      $sql_data_query= $sql . " LIMIT $offset, $pageSize" ;
      $data = $wpdb->get_results($sql_data_query);
      
      $sql_count_query = "select count(*) as total from $table_name WHERE $language_sql order by time DESC";
      $count = $wpdb->get_row($sql_count_query);
      if($data){
          return array(
              'total' => $count->total,
              'data' => $data
          );
      }else{
          return false;
      }

    }

    //Get Message
    function get_messages($total, $language){
        global $wpdb;
        $table_name = $wpdb->prefix . 'dinamo_donator_messages';
        $language_sql = ($language == "hr") ? "AND (language = '" . $language . "' OR language IS NULL)" : "AND language = '" . $language . "'";  

        $sql = "SELECT * FROM $table_name WHERE approved = 1 $language_sql ORDER BY RAND() LIMIT $total" ;
        $data = $wpdb->get_results($sql);


        if($data){
            return $data;
        }else{
            return false;
        }

    }
    
    // Delete Message
    function delete_message($message_id){
      global $wpdb;
      $table_name = $wpdb->prefix . 'dinamo_donator_messages';

      $wpdb->delete( $table_name, array( 'id' => $message_id ) );

      if($data){
          return $data;
      }else{
          return false;
      }

    }
    
    // Edit Message
    function edit_message($message_id, $message){
      if(current_user_can( 'administrator' )){
        global $wpdb;
        $table_name = $wpdb->prefix . 'dinamo_donator_messages';
    
    
        $result=$wpdb->update(
            $table_name,
            array(
                'message' => $message,
            ),
            array(
                "id" => $message_id,
    
            )
        );
    
        if ($result) {
            return array(
                "success" => true,
            );
        } else {
            return array(
                "success" => false
            );
        }
      }else {
          return array(
              "success" => false
          );
      }
    }

}