Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla4/ |
| [Home] [System Details] [Kill Me] |
hikashopremarketing.php000064400000014467151160355220011330
0ustar00<?php
/**
* @package HikaShop for Joomla!
* @version 4.4.1
* @author hikashop.com
* @copyright (C) 2010-2021 HIKARI SOFTWARE. All rights reserved.
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
*/
defined('_JEXEC') or die('Restricted access');
?><?php
class plgSystemHikashopremarketing extends JPlugin
{
public function __construct(&$subject, $config) {
parent::__construct($subject, $config);
if(isset($this->params))
return;
$plugin = JPluginHelper::getPlugin('system',
'hikashopremarketing');
$this->params = new JRegistry($plugin->params);
}
public function onAfterRender() {
$adwords_id = $this->params->get('adwordsid', 0);
if (empty($adwords_id) || $adwords_id == 0)
return true;
$app = JFactory::getApplication();
if(version_compare(JVERSION,'4.0','>=') &&
$app->isClient('administrator'))
return true;
if(version_compare(JVERSION,'4.0','<') &&
$app->isAdmin())
return true;
if(version_compare(JVERSION,'3.0','>=')) {
$layout = $app->input->getString('layout');
} else {
$layout = JRequest::getString('layout');
}
if ($layout == 'edit')
return true;
if(class_exists('JResponse'))
$body = JResponse::getBody();
$alternate_body = false;
if(empty($body)) {
$body = $app->getBody();
$alternate_body = true;
}
if (!preg_match_all('#\<input (.*)\/\>#Uis', $body,
$matches))
return true;
$para = array();
$matches = $matches[1];
$nbtag = count($matches);
for ($i = 0; $i < $nbtag; $i++) {
if (preg_match_all('#name="product_id"#Uis',
$matches[$i], $pattern) &&
preg_match_all('#value="(.*)"#Uis', $matches[$i],
$tag)) {
$para[ (int)$tag[1][0] ] = (int)$tag[1][0];
}
}
if (count($para) == 0)
return true;
if(!defined('DS'))
define('DS', DIRECTORY_SEPARATOR);
if(!include_once(rtrim(JPATH_ADMINISTRATOR,DS).DS.'components'.DS.'com_hikashop'.DS.'helpers'.DS.'helper.php'))
return true;
$db = JFactory::getDBO();
$tags = array();
$product_query = 'SELECT * FROM ' .
hikashop_table('product') .
' WHERE product_id IN (' . implode(',', $para) .
') AND product_access = '.$db->Quote('all').'
AND product_published = 1 AND product_type =
'.$db->Quote('main');
$db->setQuery($product_query);
$products = $db->loadObjectList('product_id');
foreach($products as $k => $product) {
$val =
$this->_additionalParameter($product,'ecomm_prodid');
if($val)
$tags[(int)$product->product_id] = $val;
}
if (count($tags) == 0)
return true;
$params = array('ecomm_prodid:
[\''.implode('\',\'', $tags)
.'\']', 'ecomm_pagetype: \'product\'');
$zone_id = hikashop_getZone();
$currencyClass = hikashop_get('class.currency');
$config =& hikashop_config();
$main_currency = (int)$config->get('main_currency',1);
$price_displayed =
$this->params->get('price_displayed');
switch($price_displayed){
case 'expensive':
$currencyClass->getListingPrices($products,$zone_id,$main_currency,'range');
$tmpPrice = 0;
foreach($products as $product){
if(isset($product->prices[0]->price_value)){
if(count($product->prices)>1){
for($i=0;$i<count($product->prices);$i++){
if($product->prices[$i]->price_value > $tmpPrice){
$tmpPrice = $product->prices[$i]->price_value;
$key = $i;
}
}
$product->prices[0] = $product->prices[$key];
for($i=1;$i<count($product->prices);$i++){
unset($product->prices[$i]);
}
}
}
}
break;
case 'average':
$currencyClass->getListingPrices($products,$zone_id,$main_currency,'range');
$tmpPrice = 0;
$tmpTaxPrice = 0;
foreach($products as $product){
if(isset($product->prices[0]->price_value)){
if(count($product->prices) > 1){
for($i=0;$i<count($product->prices);$i++){
if($product->prices[$i]->price_value > $tmpPrice){
$tmpPrice += $product->prices[$i]->price_value;
$tmpTaxPrice +=
@$product->prices[$i]->price_value_with_tax;
}
}
$product->prices[0]->price_value =
$tmpPrice/count($product->prices);
$product->prices[0]->price_value_with_tax =
$tmpTaxPrice/count($product->prices);
for($i=1;$i<count($product->prices);$i++){
unset($product->prices[$i]);
}
}
}
}
break;
case 'unit':
case 'cheapest':
default:
$currencyClass->getListingPrices($products,$zone_id,$main_currency,$price_displayed);
break;
}
$colum = 'price_value';
if($config->get('price_with_tax')){
$colum = 'price_value_with_tax';
}
foreach($products as $product){
if(!empty($product->prices) && count($product->prices)){
$params[]='ecomm_totalvalue:
'.round($product->prices[0]->$colum,2);
break;
}
}
$id = trim($this->params->get('adwordsid'));
$extraJS = '';
if($id != (int)$id){
$extraJS = 'alert(\'You have configured the remarketing plugin
of HikaShop with a wrong Adword ID. It should be a number. Please edit it
via the Joomla plugins manager and correct it.\');';
}
$js = '<!-- Google code for remarketingtag -->
<script type="text/javascript">
var google_tag_params = {'.implode(', ',$params).' };
var google_conversion_id = '.(int)$id.';
var google_custom_params = window.google_tag_params;
var google_remarketing_only = true;
'.$extraJS.'
</script>
<script type="text/javascript"
src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1"
style="border-style:none;" alt=""
src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/'.(int)$id.'/?value=0&guid=ON&script=0"/>
</div>
</noscript>
';
$body = preg_replace('#\<\/body\>#',
$js.'</body>', $body, 1);
if($alternate_body) {
$app->setBody($body);
} else {
JResponse::setBody($body);
}
}
function _additionalParameter(&$product, $param) {
static $fields = false;
if($fields === false) {
$fieldsClass = hikashop_get('class.field');
$data = null;
$fields = $fieldsClass->getFields('all', $data,
'product');
}
if(empty($this->params[$param])) {
$this->params[$param] = 'product_code';
}
$column = $this->params[$param];
if(empty($product->$column))
return false;
return $product->$column;
}
}
hikashopremarketing.xml000064400000004234151160355220011330
0ustar00<?xml version="1.0" encoding="utf-8"?>
<extension type="plugin" version="2.5"
method="upgrade" group="system">
<name>HikaShop Google Dynamic Remarketing (conversion
tracking)</name>
<creationDate>12 février 2021</creationDate>
<version>4.4.1</version>
<author>Hikari Software</author>
<authorEmail>dev@hikashop.com</authorEmail>
<authorUrl>http://www.hikashop.com</authorUrl>
<copyright>(C) 2010-2021 HIKARI SOFTWARE. All rights
reserved.</copyright>
<license>http://www.gnu.org/licenses/gpl-3.0.html
GNU/GPL</license>
<description>Hikashop Google remarketing (conversion tracking)
plugin</description>
<files>
<filename
plugin="hikashopremarketing">hikashopremarketing.php</filename>
</files>
<params addpath="/components/com_hikashop/params">
<param name="adwordsid" type="text"
default="" label="HIKA_ADWORDS_ID"
description="ADWORDS_ID" />
<param name="ecomm_prodid" type="text"
size="50" default="product_code"
label="ECOMM_PRODID_LABEL"
description="ECOMM_PRODID_DESC" />
<param name="price_displayed" type="list"
default="0" label="HIKA_PRICE_DISPLAYED"
description="PRICE_DISPLAYED">
<option
value="cheapest">CHEAPEST_PRICE_DISPLAYED</option>
<option
value="average">AVERAGE_PRICE_DISPLAYED</option>
<option
value="expensive">MOST_EXPENSIVE_PRICE_DISPLAYED</option>
<option
value="unit">UNIT_PRICE_DISPLAYED</option>
</param>
</params>
<config>
<fields name="params"
addfieldpath="/components/com_hikashop/fields">
<fieldset name="basic">
<field name="adwordsid" type="text"
default="" label="HIKA_ADWORDS_ID"
description="ADWORDS_ID" />
<field name="ecomm_prodid" type="text"
size="50" default="product_code"
label="ECOMM_PRODID_LABEL"
description="ECOMM_PRODID_DESC" />
<field name="price_displayed" type="list"
default="0" label="HIKA_PRICE_DISPLAYED"
description="PRICE_DISPLAYED">
<option
value="cheapest">CHEAPEST_PRICE_DISPLAYED</option>
<option
value="average">AVERAGE_PRICE_DISPLAYED</option>
<option
value="expensive">MOST_EXPENSIVE_PRICE_DISPLAYED</option>
<option
value="unit">UNIT_PRICE_DISPLAYED</option>
</field>
</fieldset>
</fields>
</config>
</extension>
index.html000064400000000054151160355220006540 0ustar00<html><body
bgcolor="#FFFFFF"></body></html>