ID)) { $img_url = site_url() . '/wp-content/uploads/' . get_post_meta(get_post_meta($post->ID, '_thumbnail_id', true), '_wp_attached_file', true); echo("{$img_url}\");"); } } function add_price_discount() { $symbolsWooPR = array( 'AED' => 'د.إ', 'AFN' => '؋', 'ALL' => 'L', 'AMD' => 'AMD', 'ANG' => 'ƒ', 'AOA' => 'Kz', 'ARS' => '$', 'AUD' => '$', 'AWG' => 'ƒ', 'AZN' => 'AZN', 'BAM' => 'KM', 'BBD' => '$', 'BDT' => '৳ ', 'BGN' => 'лв.', 'BHD' => '.د.ب', 'BIF' => 'Fr', 'BMD' => '$', 'BND' => '$', 'BOB' => 'Bs.', 'BRL' => 'R$', 'BSD' => '$', 'BTC' => '฿', 'BTN' => 'Nu.', 'BWP' => 'P', 'BYR' => 'Br', 'BZD' => '$', 'CAD' => '$', 'CDF' => 'Fr', 'CHF' => 'CHF', 'CLP' => '$', 'CNY' => '¥', 'COP' => '$', 'CRC' => '₡', 'CUC' => '$', 'CUP' => '$', 'CVE' => '$', 'CZK' => 'Kč', 'DJF' => 'Fr', 'DKK' => 'DKK', 'DOP' => 'RD$', 'DZD' => 'د.ج', 'EGP' => 'EGP', 'ERN' => 'Nfk', 'ETB' => 'Br', 'EUR' => '€', 'FJD' => '$', 'FKP' => '£', 'GBP' => '£', 'GEL' => 'ლ', 'GGP' => '£', 'GHS' => '₵', 'GIP' => '£', 'GMD' => 'D', 'GNF' => 'Fr', 'GTQ' => 'Q', 'GYD' => '$', 'HKD' => '$', 'HNL' => 'L', 'HRK' => 'Kn', 'HTG' => 'G', 'HUF' => 'Ft', 'IDR' => 'Rp', 'ILS' => '₪', 'IMP' => '£', 'INR' => '₹', 'IQD' => 'ع.د', 'IRR' => '﷼', 'IRT' => 'تومان', 'ISK' => 'kr.', 'JEP' => '£', 'JMD' => '$', 'JOD' => 'د.ا', 'JPY' => '¥', 'KES' => 'KSh', 'KGS' => 'сом', 'KHR' => '៛', 'KMF' => 'Fr', 'KPW' => '₩', 'KRW' => '₩', 'KWD' => 'د.ك', 'KYD' => '$', 'KZT' => 'KZT', 'LAK' => '₭', 'LBP' => 'ل.ل', 'LKR' => 'රු', 'LRD' => '$', 'LSL' => 'L', 'LYD' => 'ل.د', 'MAD' => 'د.م.', 'MDL' => 'MDL', 'MGA' => 'Ar', 'MKD' => 'ден', 'MMK' => 'Ks', 'MNT' => '₮', 'MOP' => 'P', 'MRO' => 'UM', 'MUR' => '₨', 'MVR' => '.ރ', 'MWK' => 'MK', 'MXN' => '$', 'MYR' => 'RM', 'MZN' => 'MT', 'NAD' => '$', 'NGN' => '₦', 'NIO' => 'C$', 'NOK' => 'kr', 'NPR' => '₨', 'NZD' => '$', 'OMR' => 'ر.ع.', 'PAB' => 'B/.', 'PEN' => 'S/.', 'PGK' => 'K', 'PHP' => '₱', 'PKR' => '₨', 'PLN' => 'zł', 'PRB' => 'р.', 'PYG' => '₲', 'QAR' => 'ر.ق', 'RMB' => '¥', 'RON' => 'lei', 'RSD' => 'дин.', 'RUB' => '₽', 'RWF' => 'Fr', 'SAR' => 'ر.س', 'SBD' => '$', 'SCR' => '₨', 'SDG' => 'ج.س.', 'SEK' => 'kr', 'SGD' => '$', 'SHP' => '£', 'SLL' => 'Le', 'SOS' => 'Sh', 'SRD' => '$', 'SSP' => '£', 'STD' => 'Db', 'SYP' => 'ل.س', 'SZL' => 'L', 'THB' => '฿', 'TJS' => 'ЅМ', 'TMT' => 'm', 'TND' => 'د.ت', 'TOP' => 'T$', 'TRY' => '₺', 'TTD' => '$', 'TWD' => 'NT$', 'TZS' => 'Sh', 'UAH' => '₴', 'UGX' => 'UGX', 'USD' => '$', 'UYU' => '$', 'UZS' => 'UZS', 'VEF' => 'Bs F', 'VND' => '₫', 'VUV' => 'Vt', 'WST' => 'T', 'XAF' => 'Fr', 'XCD' => '$', 'XOF' => 'Fr', 'XPF' => 'Fr', 'YER' => '﷼', 'ZAR' => 'R', 'ZMW' => 'ZK', ); global $post; $price = get_post_meta($post->ID, '_regular_price', true); $discount = get_post_meta($post->ID, '_sale_price', true); $currency = $symbolsWooPR[get_woocommerce_currency()]; if(!empty($price)) { echo("" . $currency . $price . ""); } if (!empty($discount)) { echo("". $currency . $discount . ""); } } function add_review_score() { global $post; $score = get_post_meta($post->ID, '_wc_average_rating', true); if (!empty($score) && $score != 0) { echo("{$score}"); } } class aklamatorWooPrWidget { private static $instance = null; /** * Get singleton instance */ public static function init() { if (self::$instance == null) { self::$instance = new self(); } return self::$instance; } public $aklamator_url; public $api_data; protected $application_id; public $aklaWooCommerce_exist; public function __construct() { $this->aklamator_url = "https://aklamator.com/"; // $this->aklamator_url = "http://192.168.5.60/aklamator/www/"; $this->application_id = get_option('aklamatorWooApplicationID'); $this->hooks(); } private function hooks(){ add_filter( 'plugin_row_meta', array($this, 'aklamatorWoo_plugin_meta_links'), 10, 2); add_filter( "plugin_action_links_".AKLAWOO_PR_PLUGIN_NAME, array($this, 'aklamatorWoo_plugin_settings_link') ); $this->aklaWooCommerce_exist = false; /** * Check if WooCommerce is active **/ if ( in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', get_option( 'active_plugins' ) ) ) ) { if ($this->application_id != "") add_filter('the_content', array($this, 'bottom_of_woo_every_post')); /* * Adds featured images from posts to your site's RSS feed output, */ if (get_option('aklamatorWooReviewScore')) { add_action('atom_entry', 'add_review_score', 1000, 1); } add_action('atom_entry', 'add_my_rss_node_productphoto', 1000, 1); add_action('atom_entry', 'add_price_discount', 1000, 1); $this->aklaWooCommerce_exist = true; } add_action( 'admin_menu', array($this,"adminMenu") ); add_action( 'admin_init', array($this,"setOptions") ); add_action( 'admin_enqueue_scripts', array($this, 'load_custom_woo_admin_style_script') ); add_action( 'after_setup_theme', array($this,'vw_setup_vw_widgets_init_aklamatorWoo') ); } function setOptions() { register_setting('aklamatorWoo-options', 'aklamatorWooApplicationID'); register_setting('aklamatorWoo-options', 'aklamatorWooPoweredBy'); register_setting('aklamatorWoo-options', 'aklamatorWooSingleWidgetID'); register_setting('aklamatorWoo-options', 'aklamatorWooPageWidgetID'); register_setting('aklamatorWoo-options', 'aklamatorWooSingleWidgetTitle'); register_setting('aklamatorWoo-options', 'aklamatorWooReviewScore'); register_setting('aklamatorWoo-options', 'aklamatorWooCategory'); } function aklamatorWoo_plugin_settings_link($links) { $settings_link = 'Settings'; array_unshift($links, $settings_link); return $links; } /* * Activation Hook */ function set_up_options() { add_option('aklamatorWooApplicationID', ''); add_option('aklamatorWooPoweredBy', ''); add_option('aklamatorWooSingleWidgetID', ''); add_option('aklamatorWooPageWidgetID', ''); add_option('aklamatorWooSingleWidgetTitle', ''); add_option('aklamatorWooReviewScore', 'on'); add_option('aklamatorWooWidgets', ''); add_option('aklamatorWooCategory'); } /* * Uninstall Hook */ function aklamator_uninstall() { delete_option('aklamatorWooApplicationID'); delete_option('aklamatorWooPoweredBy'); delete_option('aklamatorWooSingleWidgetID'); delete_option('aklamatorWooPageWidgetID'); delete_option('aklamatorWooSingleWidgetTitle'); delete_option('aklamatorWooReviewScore'); delete_option('aklamatorWooWidgets'); delete_option('aklamatorWooCategory'); } /* * Add rate and review link in plugin section */ function aklamatorWoo_plugin_meta_links($links, $file) { $plugin = AKLAWOO_PR_PLUGIN_NAME; // create link if ($file == $plugin) { return array_merge( $links, array('Please rate and review') ); } return $links; } public function adminMenu() { add_menu_page('Aklamator WooPR', 'Aklamator WooPR', 'manage_options', 'aklamator-woocommerce-promotion', array($this, 'createAdminPage'), AKLAWOO_PR_PLUGIN_URL . 'images/aklamator-icon.png'); } public function getSignupUrl() { $user_info = wp_get_current_user(); return $this->aklamator_url . 'login/application_id?utm_source=wordpress&utm_medium=wpwoo&e=' . urlencode(get_option('admin_email')) . '&pub=' . preg_replace('/^www\./','',$_SERVER['SERVER_NAME']). '&un=' . urlencode($user_info->user_login). '&fn=' . urlencode($user_info->user_firstname) . '&ln=' . urlencode($user_info->user_lastname) . '&pl=woocommerce&return_uri=' . admin_url("admin.php?page=aklamator-woocommerce-promotion"); } function load_custom_woo_admin_style_script($hook) { if ( 'toplevel_page_aklamator-woocommerce-promotion' != $hook ) { return; } /* * We are calling api only when we at this plugin page, not for all other pages */ if ($this->aklaWooCommerce_exist) { if ($this->application_id !== '') { $this->api_data = $this->addNewWooWebsiteApi(); $this->populate_with_default(); if ($this->api_data->flag) { update_option('aklamatorWooWidgets', $this->api_data); } } } // Load necessary css files wp_enqueue_style('custom-wp-admin', AKLAWOO_PR_PLUGIN_URL . 'assets/css/admin-style.css', false, '1.0.0' ); wp_enqueue_style('dataTables-plugin', AKLAWOO_PR_PLUGIN_URL . 'assets/dataTables/jquery.dataTables.min.css', false, '1.10.5', false ); // Load script files wp_enqueue_script('dataTables_plugin', AKLAWOO_PR_PLUGIN_URL . 'assets/dataTables/jquery.dataTables.min.js', array('jquery'), '1.10.5', true ); wp_register_script('my_custom_akla_script', AKLAWOO_PR_PLUGIN_URL . 'assets/js/main.js', array('jquery'), '1.0', true); $data = array( 'site_url' => $this->aklamator_url ); wp_localize_script('my_custom_akla_script', 'akla_vars', $data); wp_enqueue_script('my_custom_akla_script'); } private function populate_with_default(){ if(isset($this->api_data->data) && $this->api_data->flag){ if (get_option('aklamatorWooSingleWidgetID') !== 'none') { if (get_option('aklamatorWooSingleWidgetID') == '') { if ($this->api_data->data[0]) { update_option('aklamatorWooSingleWidgetID', $this->api_data->data[0]->uniq_name); } } } if (get_option('aklamatorWooPageWidgetID') !== 'none') { if (get_option('aklamatorWooPageWidgetID') == '') { if ($this->api_data->data[0]) { update_option('aklamatorWooPageWidgetID', $this->api_data->data[0]->uniq_name); } } } } } function bottom_of_woo_every_post($content){ /* we want to change `the_content` of posts, not pages and the text file must exist for this to work */ if (is_single()){ $widget_id = get_option('aklamatorWooSingleWidgetID'); }elseif (is_page()) { $widget_id = get_option('aklamatorWooPageWidgetID'); }else{ /* if `the_content` belongs to a page or our file is missing the result of this filter is no change to `the_content` */ return $content; } $return_content = $content; if(strlen($widget_id) >=7){ $title = ""; if(get_option('aklamatorWooSingleWidgetTitle') !== ''){ $title .= "

". get_option('aklamatorWooSingleWidgetTitle'). "

"; } /* append the text file contents to the end of `the_content` */ $return_content.= $title. $this->show_woo_widget($widget_id); } return $return_content; } public function show_woo_widget($widget_id){ $code = ''; $code .= '
'; $code .= ''; $code .= ''; return $code; } public function show_woo_widgetw($widget_id){ $code = ''; $code .= '
'; $code .= ''; $code .= ''; return $code; } private function addNewWooWebsiteApi() { if (!is_callable('curl_init')) { return; } $service =$this->aklamator_url . "wp-authenticate/user"; $p['ip'] = $_SERVER['REMOTE_ADDR']; $p['domain'] = site_url(); $p['source'] = "wordpress"; $p['AklamatorApplicationID'] = get_option('aklamatorWooApplicationID'); $aklamatorWPfeedAppend = ""; if(get_option('aklamatorWooCategory')!= -1) { $aklamatorWPfeedAppend = '&product_cat=' . get_option('aklamatorWooCategory'); } $p['aklamatorWoofeedURL'] = site_url() . '?post_type=product&feed=atom' . $aklamatorWPfeedAppend.'&rs='.get_option('aklamatorWooReviewScore'); $data = wp_remote_post( $service, array( 'method' => 'POST', 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => $p, 'cookies' => array() ) ); $data['body'] = json_decode($data['body']); return $data['body']; } public function createAdminPage() { require_once AKLAWOO_PR_PLUGIN_DIR."views/admin-page.php"; } function vw_setup_vw_widgets_init_aklamatorWoo() { add_action( 'widgets_init', array($this, 'vw_widgets_init_aklamatorWoo') ); } function vw_widgets_init_aklamatorWoo() { register_widget( 'Wp_widget_aklamatorWoo' ); } }