403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.94
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/AIWEBSTATION/wp-content/plugins/whatsapp-chatbot-addon/includes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/AIWEBSTATION/wp-content/plugins/whatsapp-chatbot-addon/includes/response.php
<?php

class Qcld_WA_Response
{

    /**
     * Request
     *
     * @var object Qcld_WA_Request
     * 
     * @since 1.0.0
     */
    private $request = '';

    /**
     * Menu Items
     * 
     * @since 1.0.0
     *
     * @var array
     */
    private $menu_items = array();

    /**
     * Faqs
     * 
     * @since 1.0.0
     *
     * @var array
     */
    private $faqs = array();

    public function __construct( Qcld_WA_Request $request ) {
        $this->request = $request;
        $this->menu_items = qcld_wa_getmenuitems();
        $this->faqs = maybe_unserialize( qcld_wa_get_option( 'support_query' ));
        $this->handle_response();
    }

    private function handle_response() {

        if ( $this->request->getSmsStatus() === 'received' ) {

            //handle message
            $message = trim( $this->request->getBody() );

            //start menu
            if ( 
                strtolower( $message ) == 'menu' || 
                strtolower( $message ) == 'help' || 
                strtolower( $message ) == 'start' || 
                strtolower( $message ) == '/start' || 
                strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_chatbot_sys_key_help' ) ) 
            ) {
                qcld_wa_showstartmenu( $this->request );
            }

            
            // Convert number to command for start menu
            $message = $this->convert_number_to_command( $message );

            if ( function_exists( 'qcld_wpbotml' ) ) {
                $all_lan = qcld_wpbotml()->languages;
                if ( isset( $all_lan[$message] ) ) {

                    //$this->helper->set_transient( '_tg_lang', $message );
                    //$this->helper->clear_all_transient();
                    //$parameters = $this->helper->menu();
                    //$this->helper->send( 'sendMessage', $parameters );
                    //exit;
                }
            }

            //Language switch
            if ( strtolower( $message ) == strtolower( qcld_wa_get_option( 'wa_language_command' ) ) && function_exists( 'qcld_wpbotml' ) ) {
                qcld_wa_show_languages( $this->request );
            }

            // Email Subscription intent handleing
            if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_subscription' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_subscription' ) == 1 ) {
                if ( filter_var( $message, FILTER_VALIDATE_EMAIL ) ) {
                    qcld_wa_emailsubscription( $this->request, 2 );
                } else {
                    qcld_wa_emailsubscription( $this->request );
                }
                
            }

            // Send feedback, Email intent handleing step 2
            if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_feedback' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_feedback' ) == 1 ) {
                if ( filter_var( $message, FILTER_VALIDATE_EMAIL ) ) {
                    qcld_wa_set_transient( $this->request->getWaId() . '_wa_feedback_email', $message );
                    qcld_wa_sendusemail( $this->request , 2 );
                    
                } else {
                    qcld_wa_sendusemail( $this->request );
                }
            }

            // Send feedback, Email intent handleing step 3
            if( qcld_wa_get_transient( $this->request->getWaId() . '_wa_feedback' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_feedback' ) == 2 ) {
                qcld_wa_set_transient( $this->request->getWaId() . '_wa_feedback_msg', $message );
                qcld_wa_sendusemail( $this->request, 3 );
                
            }

            //faq response
            if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_faq' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_faq' ) == 1 ) {
                qcld_wa_faq( $this->request, 'show_answer', $message );
            }

            //phone intent second option
            if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_phone' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_phone' ) == 1 ) {
                qcld_wa_callmeback( $this->request, 2 );
            }

            // Handling site search intent
            if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_sitesearch' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_sitesearch' ) == 1 ) {

                qcld_wa_sitesearch( $this->request, 2 );
                
            }

            // Email subscription intent
            if ( strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_email_subscription' ) ) ) {
                qcld_wa_emailsubscription( $this->request );
            }

            // Send Us email intent trigger when button click
            if ( strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_send_us_email' ) ) || strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_leave_feedback' ) ) ) {
                qcld_wa_sendusemail( $this->request );
            }

            //Handle Phone callback
            if ( strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_chatbot_support_phone' ) ) ) {
                qcld_wa_callmeback( $this->request );
            }

            //code for faq
            if ( strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_chatbot_wildcard_support' ) ) || strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_chatbot_sys_key_support' ) ) ) {
                qcld_wa_faq( $this->request, 'show_question' );
                
            }

            //Site search intent
            if ( strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_site_search' ) != '' ? qcld_wa_get_option( 'qlcd_wp_site_search' ) : 'Site Search' ) ) {
                            
                qcld_wa_sitesearch( $this->request );
                

            }

            //handle conversationl form
            if( qcld_wa_get_transient( $this->request->getWaId() . '_wa_conversational_form') && qcld_wa_get_transient( $this->request->getWaId() . '_wa_conversational_form')!=''){
				qcld_wa_handle_cfb_next($this->request, $message );
                exit;
			}

            //Conversational form builder
            if ( class_exists('qcld_wb_Chatbot') ) {
                $ccommands = array_map( 'qc_wa_nestedLowercase', qc_get_formbuilder_form_commands() );
                $cformid = qc_get_formbuilder_form_ids();
                $cforms = array_map( 'qc_wa_nestedLowercase', qc_get_formbuilder_forms() );
                $get_formidby_keyword = qc_wa_findformid( $ccommands, $cforms, $cformid, strtolower( $message ) );
                if ( ! empty( $cformid ) && in_array( $get_formidby_keyword, $cformid ) ) {
                    qcld_wa_handle_formbuilder_response( $this->request, $get_formidby_keyword );
                }
            }

            //STR Categories intent
            if ( strtolower( $message ) == strtolower( qcld_wa_get_option( 'qlcd_wp_str_category' ) != '' ? qcld_wa_get_option( 'qlcd_wp_str_category' ) : 'STR Categories' ) ) {
                qcld_wa_strcategories( $this->request );
            }

            //STR Category if matched
            if ( in_array( strtolower( $message ), array_map( 'strtolower', get_str_categories() ) ) ) {
                qcld_wa_strcategory( $this->request, $message );
            }

            // Woocommerce intents
            if ( function_exists( 'qcld_wpwc_chatboot_plugin_init' ) ) {

                
                if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_order_email' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_order_email' ) == 1 ) {

                    if ( filter_var( $message, FILTER_VALIDATE_EMAIL ) ) {
                        qcld_wa_product_order( $this->request, $message, 2 );
                    } else {
                        qcld_wa_product_order( $this->request, $message, 1 );
                    }

                }
                // order product
                // send the information to admin
                if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_showing' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_showing' ) == 1 && qcld_wa_is_number( $message ) ) {
                    $message = $this->convert_number_to_command( $message, true );
                    qcld_wa_product_order( $this->request, $message, 1 );
                }
                
                if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_search' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_search' ) == 1 ) {
                    qcld_wa_product_search( $this->request, $message, 2 );
                }
                
                // Asking email for order status
                if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_order_status' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_order_status' ) == 1 ) {

                    if ( filter_var( $message, FILTER_VALIDATE_EMAIL ) ) {

                        qcld_wa_order_status( $this->request, $message, 2 );

                    } else {

                        qcld_wa_order_status( $this->request, $message, 1 );

                    }
                    
                }

                // Asking order id for order status
                if ( qcld_wa_get_transient( $this->request->getWaId() . '_wa_order_status' ) && qcld_wa_get_transient( $this->request->getWaId() . '_wa_order_status' ) == 2 ) {
                    qcld_wa_order_status( $this->request, $message, 3 );
                }

                // Product Search
                if ( in_array( strtolower( $message ), array_map( 'strtolower', qcld_wa_get_option( 'qlcd_wp_chatbot_wildcard_product' ) ) )  ) {
                    qcld_wa_product_search( $this->request, $message, 1 );
                }
                
                // Order status check
                if ( in_array( strtolower( $message ), array_map( 'strtolower', qcld_wa_get_option( 'qlcd_wp_chatbot_wildcard_order' ) ) )  ) {
                    qcld_wa_order_status( $this->request, $message, 1 );
                }
                
                
                // Sale product
                if ( in_array( strtolower( $message ), array_map( 'strtolower', qcld_wa_get_option( 'qlcd_wp_chatbot_sale_products' ) ) )  ) {
                    qcld_wa_sale_products( $this->request, $message );
                }
                
                
                // featured product
                if ( in_array( strtolower( $message ), array_map( 'strtolower', qcld_wa_get_option( 'qlcd_wp_chatbot_featured_products' ) ) )  ) {
                    qcld_wa_featured_products( $this->request, $message );
                }

            }

            //Find STR Responses and send
            qcld_wa_findstrresponses( $this->request, $message );

            if( qcld_wa_get_option( 'enable_wp_chatbot_dailogflow' ) && qcld_wa_get_option( 'enable_wp_chatbot_dailogflow' ) == 1 && qcld_wa_get_option( 'wp_chatbot_df_api' ) && qcld_wa_get_option( 'wp_chatbot_df_api' )=='v2' ){
				//get reply for the msg from df
				qcld_wa_handle_dialogflow( $this->request, $message );
				
			}

            /*
            //Language switch

            
            */

        }
    }

    /**
     * Convert Number to string
     *
     * @param string $message
     * @return string $message
     */
    private function convert_number_to_command( $message, $internal = false ) {

        if ( strlen( $message ) > 2 ) {
            return $message;
        }

        // For internal call
        if ( $internal ) {
            if (
                qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_showing' ) &&
                qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_buttons' ) &&
                is_array( qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_buttons' ) ) &&
                qcld_wa_is_number( $message )
    
            ) {
                $buttons = qcld_wa_get_transient( $this->request->getWaId() . '_wa_product_buttons' );
                if ( isset( $buttons[ $message - 1 ] ) && ! empty( $buttons[ $message - 1 ] ) ) {
                    $message = $buttons[ $message - 1 ];
                    qcld_wa_delete_transient( $this->request->getWaId() . '_wa_product_buttons' );
                    qcld_wa_delete_transient( $this->request->getWaId() . '_wa_product_showing' );
                }
            }

            return $message;
        }
        
        if ( 
            qcld_wa_get_transient( $this->request->getWaId() . '_start_menu' ) && 
            qcld_wa_is_number( $message ) && 
            isset( $this->menu_items[ $message - 1 ] ) &&
            ! empty( $this->menu_items[ $message - 1 ] ) 
        ) {
            $message = $this->menu_items[ $message - 1 ];
            qcld_wa_delete_transient( $this->request->getWaId() . '_start_menu' );
        }

        if ( 
            qcld_wa_get_transient( $this->request->getWaId() . '_faq_menu' ) && 
            qcld_wa_is_number( $message ) && 
            isset( $this->faqs[ $message - 1 ] ) &&
            ! empty( $this->faqs[ $message - 1 ] ) 
        ) {
            $message = $this->faqs[ $message - 1 ];
            qcld_wa_delete_transient( $this->request->getWaId() . '_faq_menu' );
        }

        if (
            qcld_wa_get_transient( $this->request->getWaId() . '_wa_cf_buttons' ) &&
            is_array( qcld_wa_get_transient( $this->request->getWaId() . '_wa_cf_buttons' ) ) &&
            qcld_wa_is_number( $message )

        ) {
            $buttons = qcld_wa_get_transient( $this->request->getWaId() . '_wa_cf_buttons' );
            if ( isset( $buttons[ $message - 1 ] ) && ! empty( $buttons[ $message - 1 ] ) ) {
                $message = $buttons[ $message - 1 ];
                qcld_wa_delete_transient( $this->request->getWaId() . '_wa_cf_buttons' );
            }
        }

        if (
            qcld_wa_get_transient( $this->request->getWaId() . '_wa_str_buttons' ) &&
            is_array( qcld_wa_get_transient( $this->request->getWaId() . '_wa_str_buttons' ) ) &&
            qcld_wa_is_number( $message )

        ) {
            $buttons = qcld_wa_get_transient( $this->request->getWaId() . '_wa_str_buttons' );
            if ( isset( $buttons[ $message - 1 ] ) && ! empty( $buttons[ $message - 1 ] ) ) {
                $message = $buttons[ $message - 1 ];
                qcld_wa_delete_transient( $this->request->getWaId() . '_wa_str_buttons' );
            }
        }

        if (
            qcld_wa_get_transient( $this->request->getWaId() . '_wa_df_buttons' ) &&
            is_array( qcld_wa_get_transient( $this->request->getWaId() . '_wa_df_buttons' ) ) &&
            qcld_wa_is_number( $message )

        ) {
            $buttons = qcld_wa_get_transient( $this->request->getWaId() . '_wa_df_buttons' );
            if ( isset( $buttons[ $message - 1 ] ) && ! empty( $buttons[ $message - 1 ] ) ) {
                $message = $buttons[ $message - 1 ];
                qcld_wa_delete_transient( $this->request->getWaId() . '_wa_df_buttons' );
            }
        }

        if (
            qcld_wa_get_transient( $this->request->getWaId() . '_wa_languages' ) &&
            is_array( qcld_wa_get_transient( $this->request->getWaId() . '_wa_languages' ) ) &&
            qcld_wa_is_number( $message )

        ) {
            $buttons = qcld_wa_get_transient( $this->request->getWaId() . '_wa_languages' );
            if ( isset( $buttons[ $message - 1 ] ) && ! empty( $buttons[ $message - 1 ] ) ) {
                $message = $buttons[ $message - 1 ];
                qcld_wa_delete_transient( $this->request->getWaId() . '_wa_languages' );
            }
        }

        return $message;
    }
    
}

Youez - 2016 - github.com/yon3zu
LinuXploit