client = new Client( '00a386f2-5ae3-4526-87d3-bf861b1d6d1b', __( 'Absolute Addons', 'absolute-addons' ), ABSOLUTE_ADDONS_FILE ); /** * Allow local request, * so server behind reverse proxy can work too. */ $this->client->allow_local_request(); $this->init_hooks(); // Initialize All Services. $this->insights = $this->client->insights(); $this->promotion = $this->client->promotions(); // Initialize. $this->insights->init(); $this->promotion->init(); } /** * Initialize Insights * * @return void */ private function init_hooks() { $slug = $this->client->getSlug(); add_action( 'admin_init', [ $this, 'admin_init' ] ); add_filter( $slug . '_tracker_data', [ $this, 'track_extra_data' ] ); add_filter( $slug . '_terms_url', [ $this, 'terms_url' ] ); add_filter( $slug . '_privacy_policy_url', [ $this, 'privacy_policy_url' ] ); add_filter( $slug . '_what_tracked', [ $this, 'data_we_collect' ] ); add_filter( "absp_service_api_{$slug}_Support_Ticket_Recipient_Email", [ $this, 'support_email' ] ); add_filter( "absp_service_api_{$slug}_Support_Ticket_Email_Template", [ $this, 'support_ticket_template' ], 10 ); add_filter( "absp_service_api_{$slug}_Support_Request_Ajax_Success_Response", [ $this, 'support_response' ], 10 ); add_filter( "absp_service_api_{$slug}_Support_Request_Ajax_Error_Response", [ $this, 'support_error_response' ], 10 ); add_filter( "absp_service_api_{$slug}_Support_Page_URL", [ $this, 'support_url' ] ); } public function admin_init() { if ( ! absp_has_pro() ) { $this->insights->add_action_links( 'get_pro', [ 'href' => 'https://absoluteplugins.com/wordpress-plugins/absolute-addons/pricing/?utm_source=plugin-installer&utm_medium=action-links&utm_campaign=get-pro&utm_content=get-pro', 'class' => 'absolute-addons-get-pro', 'target' => '_blank', 'rel' => 'noopener', 'label' => esc_html__( 'Get Pro', 'absolute-addons' ), ] ); } } public function track_extra_data( $data ) { $data['extra']['favourite'] = get_option( Absp_Library_Source::LIBRARY_FAVORITE_KEY ); return $data; } protected function enable_debug_mode() { add_filter( 'absp_service_api_is_debugging', '__return_true' ); add_filter( 'https_local_ssl_verify', '__return_false' ); add_filter( 'http_request_reject_unsafe_urls', '__return_false' ); add_filter( 'absp_service_api_is_local', '__return_false' ); add_filter( 'http_request_reject_unsafe_urls', '__return_false' ); } /** * Check license status * * @return bool */ public function is_active() { return $this->license->is_valid(); } public function get_license_data() { return $this->license->get_license(); } /** * Set Data Collection description for the tracker * * @param $data * * @return array */ public function data_we_collect( $data ) { $data[999] = sprintf( /* translators: 1. Plugin Name. */ esc_html__( 'And %s usage data.', 'absolute-addons' ), '' . esc_html__( 'Absolute Addon', 'absolute-addons' ) . '' ); return $data; } public function get_data_we_collect() { return $this->insights->get_data_we_collect(); } /** * Update Tracker OptIn * * @param bool $override optional. ignore last send datetime settings if true. * @return void * @see Insights::send_tracking_data() */ public function tracker_opt_in( $override = false ) { $this->insights->optIn( $override ); } /** * Update Tracker OptOut * * @return void */ public function tracker_opt_out() { $this->insights->optOut(); } /** * Check if tracking is enable * * @return bool */ public function is_tracking_allowed() { return $this->insights->is_tracking_allowed(); } public function opt_in_url() { return $this->insights->get_opt_in_url(); } public function opt_out_url() { return $this->insights->get_opt_out_url(); } public function support_email() { return 'support@absoluteplugins.com'; } public function support_url() { return 'https://go.absoluteplugins.com/to/absolute-addons-support/'; } public function terms_url() { return 'https://go.absoluteplugins.com/to/absolute-addons-terms/'; } public function privacy_policy_url() { return 'https://go.absoluteplugins.com/to/absolute-addons-privacy/'; } /** * Generate Support Ticket Email Template * * @return string */ public function support_ticket_template() { // dynamic variable format __INPUT_NAME__ $template = sprintf( '

Website : __WEBSITE__
Plugin : %s (v.%s)

', $this->client->getName(), $this->client->getProjectVersion() ); $template .= '

'; $template .= '

__SUBJECT__

'; $template .= '
__MESSAGE__
'; $template .= '

'; $template .= sprintf( '

%s

', 'Message Processed With AbsolutePlugin Service Library (v.' . $this->client->getClientVersion() . ')' ); return $template; } /** * Generate Support Ticket Ajax Response * * @return string */ public function support_response() { $ticket_submitted = esc_html__( 'Your ticket has been successfully submitted.', 'absolute-addons' ); $twenty4_hours = '' . esc_html__( '24 hours', 'absolute-addons' ) . ''; $notification = sprintf( /* translators: 1. Support Response Time. */ esc_html__( 'You will receive an email notification from "support@absoluteplugins.com" in your inbox within %1$s.', 'absolute-addons' ), $twenty4_hours ); $follow_up = esc_html__( 'Please Follow the email and AbsolutePlugins Support Team will get back with you shortly.', 'absolute-addons' ); $doc_link = sprintf( ' %s', esc_html__( 'Documentation', 'absolute-addons' ) ); $vid_link = sprintf( ' %s', esc_html__( 'Video Tutorials', 'absolute-addons' ) ); $policy = sprintf( /* translators: 1: Privacy Policy Link, 2: Terms Links */ esc_html__( 'Please read our %1$s and %2$s', 'absolute-addons' ), '' . esc_html__( 'Terms & Conditions', 'absolute-addons' ) . '', '' . esc_html__( 'Privacy Policy', 'absolute-addons' ) . '' ); $response = '

' . esc_html__( 'Thank you -- Support Ticket Submitted.', 'absolute-addons' ) . '

'; $response .= '

' . $ticket_submitted . ' ' . $notification . ' ' . $follow_up . '

'; $response .= '

' . $doc_link . ' ' . $vid_link . '




'; $response .= '

' . $policy . '

'; return $response; } /** * Set Error Response Message For Support Ticket Request * * @return string */ public function support_error_response() { return sprintf( '

%s

%s



%s

', esc_html__( 'Something Went Wrong. Please Try The Support Ticket Form On Our Website.', 'absolute-addons' ), sprintf( '%s', esc_html__( 'Get Support', 'absolute-addons' ) ), esc_html__( 'Support Ticket form will open in new tab in 5 seconds.', 'absolute-addons' ) ); } /** * Cloning is forbidden. */ public function __clone() { _doing_it_wrong( __FUNCTION__, esc_html__( 'Cloning is forbidden.', 'absolute-addons' ), '1.0.2' ); } } Absolute_Addons_Services::get_instance(); // End of file class-absolute-addons-services.php.