403Webshell
Server IP : 192.64.118.117  /  Your IP : 3.148.113.167
Web Server : LiteSpeed
System : Linux premium56.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64
User : thecgapy ( 1160)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/thecgapy/mobilecreationz.com/wp-content/plugins/e-signature/models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/thecgapy/mobilecreationz.com/wp-content/plugins/e-signature/models/Invite.php
<?php

class WP_E_Invite extends WP_E_Model {

    private $table;

    public function __construct() {
        parent::__construct();

        $this->table = $this->prefix . "invitations";
    }

    /**
     * Crate and insert new signer invitation in database 
     * @param type array $invitation
     * @return type
     */
    public function insert($invitation) {
        
        $this->wpdb->query(
                $this->wpdb->prepare(
                        "INSERT INTO " . $this->table . " (user_id, document_id, invite_hash, invite_message, invite_sent) VALUES(%d,%d,'%s','%s',0)", $invitation['recipient_id'], $invitation['document_id'], $invitation['hash'], '' // TODO: Get rid of this column, `invite_message`
                )
        );
        $inviteId = $this->wpdb->insert_id;
        $docType = esigget("sender_id",$invitation);
        if($docType =='stand alone'){
            $this->recordSent($inviteId);
        }
        return $inviteId;
    }

    public static function invite_sent_record($signer_name, $signer_email, $document_id) {

        $doc_model = new WP_E_Document();
        $total_invitation = WP_E_Sig()->invite->getInvitationCount($document_id);

        $event_total = $doc_model->esig_event_exists($document_id, 'document_sent');

        if ($total_invitation <= $event_total) {
            $event_text = sprintf(__("Document Resent for signature to %s - %s", 'esig'), stripslashes_deep(trim($signer_name)), $signer_email);
            $doc_model->recordEvent($document_id, 'document_resent', $event_text);
        } else {

            $event_text = sprintf(__("Document sent for signature to %s - %s", 'esig'), stripslashes_deep(trim($signer_name)), $signer_email);
            $doc_model->recordEvent($document_id, 'document_sent', $event_text);
        }
    }

    public static function is_invite_sent($document_id) {

        $doc_model = new WP_E_Document();
        $status = $doc_model->getStatus($document_id);
        if ($status == "draft") {
            return true;
        }
        if (!$doc_model->esig_event_exists($document_id, 'document_sent')) {
             $ret = false ; 
             return apply_filters('esig_invite_not_sent',$ret,$document_id);
        } else {
            return true;
        }
    }

    /**
     * Records when an invite is sent
     * 
     * @since 1.0.1
     * @param Int ($invitation_id), String ($date_sent) formatted as 0000-00-00 00:00:00
     * @return void
     */
    public function recordSent($invitation_id, $date_sent = null) {

        $document_id = $this->getdocumentid_By_inviteid($invitation_id);

        $newdoc = new WP_E_Document();

        $date_sent = $newdoc->esig_date($document_id);
        $ownerIp = $newdoc->docIp($document_id);

        $this->wpdb->show_errors();
        $result = $this->wpdb->query(
                $this->wpdb->prepare(
                        "UPDATE " . $this->table . " SET " .
                        "invite_sent='1', invite_sent_date='%s', sender_ip='%s' " .
                        "WHERE invitation_id=%d", $date_sent, $ownerIp, $invitation_id
                )
        );

        return $result;
    }

    public function getInvitations($documentID) {

        return $this->wpdb->get_results(
                        $this->wpdb->prepare(
                                "SELECT * FROM " . $this->table . " i 
				 INNER JOIN " . $this->prefix . "users u 
				 ON i.user_id = u.user_id AND i.document_id=%d order by invitation_id", $documentID
                        )
        );
    }

    public function get_all_Invitations_userID($user_id) {

        return $this->wpdb->get_results(
                        $this->wpdb->prepare(
                                "SELECT * FROM " . $this->table . " WHERE user_id = %d", $user_id
                        )
        );
    }

    public function getInviteHash($invitationID) {
        return $this->wpdb->get_var(
                        $this->wpdb->prepare(
                                "SELECT invite_hash FROM " . $this->table . " WHERE invitation_id = %d LIMIT 1", $invitationID
                        )
        );
    }

    public function getInviteHash_By_documentID($documentID) {
        return $this->wpdb->get_var(
                        $this->wpdb->prepare(
                                "SELECT invite_hash FROM " . $this->table . " WHERE document_id = %d LIMIT 1", $documentID
                        )
        );
    }

    public function getuserid_By_invitehash($invite_hash) {
        return $this->wpdb->get_var(
                        $this->wpdb->prepare(
                                "SELECT user_id FROM " . $this->table . " WHERE invite_hash = %s LIMIT 1", $invite_hash
                        )
        );
    }

    public function getdocumentid_By_invitehash($invite_hash) {
        return $this->wpdb->get_var(
                        $this->wpdb->prepare(
                                "SELECT document_id FROM " . $this->table . " WHERE invite_hash = %s LIMIT 1", $invite_hash
                        )
        );
    }

    /**
     *  
     * @param undefined $invitation_id
     * 
     * @return
     */
    public function getdocumentid_By_inviteid($invitation_id) {
        return $this->wpdb->get_var(
                        $this->wpdb->prepare(
                                "SELECT document_id FROM " . $this->table . " WHERE invitation_id= %d LIMIT 1", $invitation_id
                        )
        );
    }

    public function getInviteID_By_userID_documentID($user_id, $documentID) {
        return $this->wpdb->get_var(
                        $this->wpdb->prepare(
                                "SELECT invitation_id FROM " . $this->table . " WHERE user_id=%d and document_id = %d", $user_id, $documentID
                        )
        );
    }

    public function get_Invite_Hash($user_id, $documentID) {
        return $this->wpdb->get_var(
                        $this->wpdb->prepare(
                                "SELECT invite_hash FROM " . $this->table . " WHERE user_id=%d and document_id = %d", $user_id, $documentID
                        )
        );
    }

    public function getInviteBy($field, $strvalue) {
        return $invite = $this->wpdb->get_row(
                $this->wpdb->prepare(
                        "SELECT * FROM " . $this->table . " WHERE $field = '%s'", $strvalue
                )
        );
        //return $invite[0];
    }

    /**
     * Deletes all invitations for a given document
     */
    public function deleteDocumentInvitations($doc_id) {
        return $this->wpdb->delete($this->table, array('document_id' => $doc_id), '%d');
    }

    /**
     * Return Total invitation Row Count
     *
     * @since 0.1.0
     * @param null
     * @return Int
     */
    public function getInvitationTotal($userid, $doc_id) {

        return $this->wpdb->get_var("SELECT COUNT(*) FROM " . $this->table . " WHERE user_id=" . $userid . " and document_id=" . $doc_id . "");
    }

    public function getInvitationCount($doc_id) {

        if (empty($doc_id)) {
            return false;
        }
        return $this->wpdb->get_var("SELECT COUNT(*) FROM " . $this->table . " WHERE document_id=" . $doc_id . "");
    }

    public function getInvitationExists($doc_id) {

        return $this->wpdb->get_var("SELECT COUNT(*) FROM " . $this->table . " WHERE document_id=" . $doc_id . "");
    }

    public function fetchAll() {
        global $wpdb;
        return $wpdb->get_results("SELECT * FROM " . $this->table);
    }

    /**
     * Return invitation url with e-signatue default page
     * @param type $invite_hash
     * @param type $invite_checksum
     * @return string
     */
    public static function get_invite_url($invite_hash, $invite_checksum) {
        return esc_url_raw(add_query_arg(array('invite' => $invite_hash, 'csum' => $invite_checksum), get_permalink(WP_E_Sig()->setting->get_default_page())));
    }

    public static function get_preview_url($document_id, $hash = false) {
        if ($hash) {
            return esc_url_raw(add_query_arg(array('esigpreview' => 1, 'document_id' => $document_id, 'hash' => $hash), get_permalink(WP_E_Sig()->setting->get_default_page())));
        } else {
            return esc_url_raw(add_query_arg(array('esigpreview' => 1, 'document_id' => $document_id), get_permalink(WP_E_Sig()->setting->get_default_page())));
        }
    }
    
    public static function adminPreviewUrl(){
        return esc_url_raw(add_query_arg(array('esigpreview' => 1, 'mode' =>1), get_permalink(WP_E_Sig()->setting->get_default_page())));
    }

    public static function get_signed_doc_url($check_sum, $invite_hash) {
        return esc_url_raw(add_query_arg(array('invite' => $invite_hash, 'csum' => $check_sum), get_permalink(WP_E_Sig()->setting->get_default_page())));
    }

    /**
     * Send E-signature invitation 
     * @param type $invitation_id
     * @param type $signer_id
     * @param type $document_id
     * @return type
     */
    public function send_invitation($invitation_id, $signer_id, $document_id) {

        $users = WP_E_Sig()->user->getUserBy('user_id', $signer_id);
        $document = WP_E_Sig()->document->getDocument($document_id);
        $user_details = WP_E_Sig()->user->getUserdetails($users->user_id, $document_id);
        $admin_user = WP_E_Sig()->user->getUserByWPID($document->user_id);
        //$sender_name = $admin_user->first_name . " " . $admin_user->last_name;


        $sender = $admin_user->first_name . " " . $admin_user->last_name;

        $template_data = array(
            'user_email' => $admin_user->user_email,
            'user_full_name' => $sender,
            'recipient_name' => $user_details->first_name,
            'document_title' => $document->document_title,
            'document_checksum' => $document->document_checksum,
            'invite_url' => self::get_invite_url($this->getInviteHash($invitation_id), $document->document_checksum),
            'assets_dir' => ESIGN_ASSETS_DIR_URI,
        );

        $subject = $document->document_title . __(" - Signature requested by ","esig") . $sender;

        $mailsent = WP_E_Sig()->email->send(array(
            'from_name' => $sender, // Use 'posts' to get standard post objects
            'from_email' => $admin_user->user_email,
            'to_email' => $users->user_email,
            'subject' => $subject,
            'message_template' => ESIGN_PLUGIN_PATH . DS . 'views' . DS . 'invitations' . DS . 'invite.php',
            'template_data' => $template_data,
            'attachments' => false,
            'document' => $document,
        ));

        // Record event: Document sent
        $this->recordSent($invitation_id);

        // record event when document sent for sign\
        if ($mailsent) {
            self::invite_sent_record($user_details->first_name, $users->user_email, $document_id);
        }

        return $mailsent;
    }

    public function reciepent_list($document_id,$edit_display=true,$readonly=true) {

        $invitations = $this->getInvitations($document_id);
        // $recipient_emails_ajax = '';
        $recipient_emails = '';
        $index = 0;
        
      
            
            $edit_button =($edit_display)? '<span style=""><a href="#" id="standard_view">' . __('Edit', 'esig') . '</a></span>': false;
            $signer_add_text=($edit_display)?__('+ Add Signer', 'esig'):__('+ Add Signer', 'esig');
            $read_display = ($readonly)?'readonly' : false ; 
        
            //$signer_order = (class_exists('ESIGN_SIGNER_ORDER_SETTING') && !$readonly && )? '<span id="signer-sl" class="signer-sl">' . $j . '.</span><span class="field_arrows"><span id="esig_signer_up"  class="up"> &nbsp; </span><span id="esig_signer_down"  class="down"> &nbsp; </span></span>' : false ;
        
        $recipient_emails .= ' <div id="recipient_emails" class="invitation-emails">';
         
        foreach ($invitations as $invite) {

            $recipient = WP_E_Sig()->user->getUserdetails($invite->user_id, $document_id);
            $first_name = esc_html(stripslashes($recipient->first_name));

            $user_email = $recipient->user_email;
            $del_button = ($index >0)? '<span id="esig-del-signer" class="deleteIcon"></span>': false ; 
            $slv_button = (class_exists('ESIG_SLV_Admin'))? '<span id="second_layer_verification" class="icon-doorkey second-layer" ></span>' : false;
            $cross_button = (!$edit_button)? $slv_button . $del_button: false;
            
            $signer_order = apply_filters("esig-load-signer-order",'',$readonly,$document_id,$index);

            $recipient_emails .= '<div id="signer_main">
                                        '. $signer_order .'
					<input type="text" name="recipient_fnames[]" placeholder="Signers Name" value="' . $first_name . '" '. $read_display .' />
					<input type="text" name="recipient_emails[]" class="recipient-email-input" placeholder="' . $user_email . '"  value="' . $user_email . '" '. $read_display .' />'. $edit_button . $cross_button;
            //if($index>0) $recipient_emails .= '<a class="minus-recipient" href="#">delete</a>';
            $recipient_emails .= '</div>';

            $index++;
        }
        
        $recipient_emails .='
        </div>
               <div id="esig-signer-setting-box" class="esig-signer-container">
                   
                    <span class="esig-signer-left">' . apply_filters('esig-signer-order-filter', '',$document_id) . '</span>
                    <span class="esig-signer-right"> <a href="#" id="standard_view" class="add-signer"> ' . $signer_add_text . '</a></span>
                    
               </div>';
        $recipient_emails .= apply_filters("esig_cc_users_content", "", $document_id,$readonly);
        return $recipient_emails;
    }

}

Youez - 2016 - github.com/yon3zu
LinuXploit