removed file
This commit is contained in:
parent
62c1d9d15c
commit
7d555e4b32
|
@ -1,383 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* CLASS: Share Your Cart Wordpress Plugin
|
|
||||||
* AUTHOR: Barandi Solutions
|
|
||||||
* COUNTRY: Romania
|
|
||||||
* EMAIL: catalin.paun@barandisolutions.ro
|
|
||||||
* VERSION : 1.0
|
|
||||||
* DESCRIPTION: This class is used as a base class for every wordpress shopping cart plugin we create.
|
|
||||||
* * Copyright (C) 2011 Barandi Solutions
|
|
||||||
*/
|
|
||||||
|
|
||||||
require_once "sdk/class.shareyourcart-base.php";
|
|
||||||
|
|
||||||
if (!class_exists('ShareYourCartWordpressPlugin', false)) {
|
|
||||||
|
|
||||||
abstract class ShareYourCartWordpressPlugin extends ShareYourCartBase {
|
|
||||||
|
|
||||||
protected static $_INSTANCES = array();
|
|
||||||
protected static $_VERSION = 2;
|
|
||||||
protected $_PLUGIN_PATH;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
* @param null
|
|
||||||
*/
|
|
||||||
function __construct() {
|
|
||||||
|
|
||||||
parent::__construct();
|
|
||||||
|
|
||||||
//if there is installed another plugin with a never version
|
|
||||||
//do not load this one further
|
|
||||||
if (!$this->canLoad()) return;
|
|
||||||
|
|
||||||
//make sure we add this instance
|
|
||||||
self::$_INSTANCES []= $this;
|
|
||||||
$this->_PLUGIN_PATH = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__), "", plugin_basename(__FILE__));
|
|
||||||
|
|
||||||
//setup the hooks
|
|
||||||
register_activation_hook(self::getPluginFile(), array(&$this, 'activateHook'));
|
|
||||||
register_deactivation_hook(self::getPluginFile(), array(&$this, 'deactivateHook'));
|
|
||||||
|
|
||||||
//perform the rest of the loading AFTER all plugins have been loaded
|
|
||||||
add_action('plugins_loaded', array(&$this, 'pluginsLoadedHook'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Abstract isCartActive
|
|
||||||
* @param null
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
protected abstract function isCartActive();
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Get the plugin version.
|
|
||||||
* @return an integer
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function getPluginVersion() {
|
|
||||||
|
|
||||||
return self::$_VERSION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Return the project's URL
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function getDomain() {
|
|
||||||
|
|
||||||
return get_bloginfo('url');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Return the admin's email
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function getAdminEmail() {
|
|
||||||
|
|
||||||
return get_option('admin_email');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Set the field value
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function setConfigValue($field, $value) {
|
|
||||||
update_option('_shareyourcart_'.$field, $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Get the field value
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function getConfigValue($field) {
|
|
||||||
return get_option('_shareyourcart_'.$field);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Get the path to the main file of the plugin
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function getPluginFile() {
|
|
||||||
global $plugin;
|
|
||||||
|
|
||||||
return $plugin;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Get the upload directory
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function getUploadDir() {
|
|
||||||
$dir = wp_upload_dir();
|
|
||||||
|
|
||||||
return !empty($dir['path']) ? $dir['path'] : parent::getUploadDir();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Execute the SQL statement
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function executeNonQuery($sql) {
|
|
||||||
|
|
||||||
if (substr($sql, 0, 12) == "CREATE TABLE") {
|
|
||||||
|
|
||||||
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
|
|
||||||
|
|
||||||
//if this is a create table command, use the special function which compares tables
|
|
||||||
dbDelta($sql);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
global $wpdb;
|
|
||||||
|
|
||||||
//use the normal query
|
|
||||||
$wpdb->query($sql);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Get the row returned from the SQL
|
|
||||||
*
|
|
||||||
* @return an associative array containing the data of the row OR NULL
|
|
||||||
* if there is none
|
|
||||||
*/
|
|
||||||
protected function getRow($sql) {
|
|
||||||
|
|
||||||
global $wpdb;
|
|
||||||
|
|
||||||
//get the row as an associative array
|
|
||||||
return $wpdb->get_row($sql, ARRAY_A);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Get the table name based on the key
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function getTableName($key) {
|
|
||||||
global $wpdb;
|
|
||||||
|
|
||||||
return $wpdb->base_prefix.$key;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Insert the row into the specified table
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
protected function insertRow($tableName, $data) {
|
|
||||||
global $wpdb;
|
|
||||||
|
|
||||||
$wpdb->insert($tableName, $data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Create url for the specified file. The file must be specified in relative path
|
|
||||||
* to the base of the plugin
|
|
||||||
*/
|
|
||||||
protected function createUrl($file) {
|
|
||||||
//get the real file path
|
|
||||||
$file = realpath($file);
|
|
||||||
|
|
||||||
//calculate the relative path from this file
|
|
||||||
$file = SyC::relativepath(dirname(__FILE__), $file);
|
|
||||||
|
|
||||||
//append the relative path to the current file's URL
|
|
||||||
return WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__), "", plugin_basename(__FILE__)).$file;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* Part of the initialization process, this is used to check if the cart is
|
|
||||||
* really active
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function pluginsLoadedHook() {
|
|
||||||
|
|
||||||
//if the cart is not loaded, do not load this plugin further
|
|
||||||
if (!$this->isCartActive()) return;
|
|
||||||
//if(!$this->existsTable($this->getTableName('shareyourcart_coupons'))) throw new Exception('abc');
|
|
||||||
add_action('wp_head', array(&$this, 'showPageHeader'));
|
|
||||||
add_action('admin_menu', array(&$this, 'showAdminMenu'));
|
|
||||||
|
|
||||||
//add the shortcodes ONLY if they where not added before, by another plugin
|
|
||||||
global $shortcode_tags;
|
|
||||||
if (!array_key_exists('shareyourcart', $shortcode_tags)) {
|
|
||||||
add_shortcode('shareyourcart', array(&$this, 'getButton'));
|
|
||||||
add_shortcode('shareyourcart_button', array(&$this, 'getButton'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* This is the activate hook called by WordPress. It is used for both install and activate
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function activateHook() {
|
|
||||||
|
|
||||||
if (!$this->isCartActive()) return;
|
|
||||||
|
|
||||||
$message = '';
|
|
||||||
|
|
||||||
//the db version is old, so install it again
|
|
||||||
if (version_compare($this->getConfigValue('db_version'), self::$_DB_VERSION)!=0) {
|
|
||||||
|
|
||||||
$this->install($message);
|
|
||||||
} else { //if the version are equal, simply activate the plugin
|
|
||||||
|
|
||||||
$this->activate($message);
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO: perhaps we can show the message somehow to the user. For now, just log it
|
|
||||||
error_log($message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* This is the deactivate hook called by WordPress.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function deactivateHook() {
|
|
||||||
|
|
||||||
if (!$this->isCartActive()) return;
|
|
||||||
|
|
||||||
$message = '';
|
|
||||||
|
|
||||||
$this->deactivate($message);
|
|
||||||
|
|
||||||
//TODO: perhaps we can show the message somehow to the user. For now, just log it
|
|
||||||
error_log($message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* When installing the new wordpress plugin, make sure to move the old data
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function install(&$message = null) {
|
|
||||||
|
|
||||||
global $wpdb;
|
|
||||||
|
|
||||||
$old_table_name = $this->getTableName('shareyourcart_settings');
|
|
||||||
if ($wpdb->get_var("show tables like '$old_table_name'") == $old_table_name) {
|
|
||||||
|
|
||||||
//get the old app_key and client_id
|
|
||||||
$settings = $wpdb->get_row("SELECT app_key, client_id FROM ".$wpdb->base_prefix."shareyourcart_settings LIMIT 1");
|
|
||||||
if ($settings) {
|
|
||||||
|
|
||||||
$this->setConfigValue('appKey', $settings->app_key);
|
|
||||||
$this->setConfigValue('clientId', $settings->client_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
//remove the old table
|
|
||||||
$wpdb->query("DROP TABLE $old_table_name");
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::install($message);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* This is the deactivate hook called by WordPress.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public static function uninstallHook() {
|
|
||||||
|
|
||||||
//this hook is required by WordPress to be static
|
|
||||||
//so call uninstall on the first instance
|
|
||||||
if (!empty(self::$_INSTANCES)) {
|
|
||||||
|
|
||||||
self::$_INSTANCES[0]->uninstall();
|
|
||||||
} else {
|
|
||||||
|
|
||||||
//log the error
|
|
||||||
error_log("There is no instance created when calling uninstall hook");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* show the admin menu
|
|
||||||
* @param null
|
|
||||||
* @return boolean
|
|
||||||
*/
|
|
||||||
public function showAdminMenu() {
|
|
||||||
|
|
||||||
//this is a single call function
|
|
||||||
if (!$this->isFirstCall(__FUNCTION__)) return;
|
|
||||||
|
|
||||||
//first, check the SDK status
|
|
||||||
$this->checkSDKStatus();
|
|
||||||
|
|
||||||
//see if we need to show the update notification
|
|
||||||
$notification = null;
|
|
||||||
if ($this->hasNewerVersion())
|
|
||||||
$notification = "<span class='update-plugins count-$warning_count'><span class='update-count'>" . number_format_i18n(1) . "</span></span>";
|
|
||||||
|
|
||||||
$page = add_menu_page(
|
|
||||||
__('Share your cart settings'),
|
|
||||||
__('ShareYourCart').$notification,
|
|
||||||
'manage_options',
|
|
||||||
basename(__FILE__),
|
|
||||||
array(&$this, 'showAdminPage'),
|
|
||||||
$this->_PLUGIN_PATH .'sdk/img/shareyourcart.png'
|
|
||||||
);
|
|
||||||
add_action( 'admin_head-'.$page, array(&$this, 'showAdminHeader'));
|
|
||||||
|
|
||||||
if ($this->isActive()) {
|
|
||||||
//show the rest of the menu ONLY if the plugin is active
|
|
||||||
$page = add_submenu_page(
|
|
||||||
basename(__FILE__),
|
|
||||||
__('Button'),
|
|
||||||
__('Customize Button'),
|
|
||||||
'manage_options',
|
|
||||||
basename(__FILE__).'-button',
|
|
||||||
array(&$this, 'showButtonCustomizationPage'));
|
|
||||||
add_action( 'admin_head-'. $page, array(&$this, 'showAdminHeader'));
|
|
||||||
|
|
||||||
$page = add_submenu_page(
|
|
||||||
basename(__FILE__),
|
|
||||||
__('Documentation'),
|
|
||||||
__('Documentation'),
|
|
||||||
'manage_options',
|
|
||||||
basename(__FILE__).'-documentation',
|
|
||||||
array(&$this, 'showDocumentationPage'));
|
|
||||||
add_action( 'admin_head-'. $page, array(&$this, 'showAdminHeader'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Called when a new coupon is generated
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public function couponCallback() {
|
|
||||||
|
|
||||||
//since there are a lot of plugins for wordpress, first make sure this plugin
|
|
||||||
//is active
|
|
||||||
if (!$this->isCartActive()) {
|
|
||||||
|
|
||||||
header("HTTP/1.0 403");
|
|
||||||
echo "Shopping Cart is not active";
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
parent::couponCallback();
|
|
||||||
|
|
||||||
//since this is actually an API, exit
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} //END IF
|
|
||||||
?>
|
|
Loading…
Reference in New Issue