Skip to content
Snippets Groups Projects
Commit a0a05b25 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Some more moving to the library

parent 7a0dba2b
Branches library
No related tags found
No related merge requests found
...@@ -127,7 +127,7 @@ class OpenTools_Ordernumber_Block_Counters extends Mage_Adminhtml_Block_System_C ...@@ -127,7 +127,7 @@ class OpenTools_Ordernumber_Block_Counters extends Mage_Adminhtml_Block_System_C
* @param array $websiteIds * @param array $websiteIds
* @return array * @return array
*/ */
public function _getScoreStructureOptions($isAll = false, $websiteIds = array(), public function _getStoreStructureOptions($isAll = false, $websiteIds = array(),
$groupIds = array(), $storeIds = array() $groupIds = array(), $storeIds = array()
) { ) {
$sstore = Mage::getSingleton('adminhtml/system_store'); $sstore = Mage::getSingleton('adminhtml/system_store');
...@@ -200,7 +200,7 @@ class OpenTools_Ordernumber_Block_Counters extends Mage_Adminhtml_Block_System_C ...@@ -200,7 +200,7 @@ class OpenTools_Ordernumber_Block_Counters extends Mage_Adminhtml_Block_System_C
protected function _getNumberScopeSelect($name, $disabled=true, $current=null) protected function _getNumberScopeSelect($name, $disabled=true, $current=null)
{ {
$options = $this->_getScoreStructureOptions(true); $options = $this->_getStoreStructureOptions(true);
$html = $this->getLayout()->createBlock('core/html_select') $html = $this->getLayout()->createBlock('core/html_select')
->setName($name) ->setName($name)
->setClass($this->_getDisabled($disabled)) ->setClass($this->_getDisabled($disabled))
......
...@@ -5,81 +5,31 @@ class OpenTools_Ordernumber_Helper_Data extends Mage_Core_Helper_Abstract ...@@ -5,81 +5,31 @@ class OpenTools_Ordernumber_Helper_Data extends Mage_Core_Helper_Abstract
{ {
protected $helper = null; protected $helper = null;
function __construct($label, $item) function logitem($label, $item)
{ {
$this->helper = OrdernumberHelperMagento::getHelper();
Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log'); Mage::Log($label . " " . get_class($item) . "\n", null, 'ordernumber.log');
Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log'); Mage::Log(is_array($item)?$item:$item->debug(), null, 'ordernumber.log');
Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log'); Mage::Log(get_class_methods(get_class($item)), null, 'ordernumber.log');
} }
function __construct()
/* Return a random "string" of the given length taken from the given alphabet */
protected function randomString($alphabet, $len)
{
$alen = strlen($alphabet);
$r = "";
for ($n=0; $n<$len; $n++) {
$r .= $alphabet[mt_rand(0, $alen-1)];
}
return $r;
}
protected function replaceRandom ($match)
{ {
/* the regexp matches (random)(Type)(Len) as match, Type and Len is optional */ // Setup the ordernumber helper object and register the required callbacks:
$len = ($match[3]?$match[3]:1); $this->helper = OrdernumberHelperMagento::getHelper();
// Fallback: If no Type is given, use Digit
$alphabet = "0123456789";
// Select the correct alphabet depending on Type
switch (strtolower($match[2])) {
case "digit":
$alphabet = "0123456789";
break;
case "hex":
$alphabet = "0123456789abcdef";
break;
case "letter":
$alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case "uletter":
$alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
break;
case "lletter":
$alphabet = "abcdefghijklmnopqrstuvwxyz";
break;
case "alphanum":
$alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
break;
}
return self::randomString ($alphabet, $len);
}
protected function setupDateTimeReplacements (&$reps, $nrtype) $this->helper->registerCallback('setupStoreReplacements', array($this, 'setupStoreReplacements'));
{
$utime = microtime(true);
$reps["[year]"] = date ("Y", $utime); $this->helper->registerCallback('setupOrderReplacements', array($this, 'setupOrderReplacements'));
$reps["[year2]"] = date ("y", $utime); $this->helper->registerCallback('setupUserReplacements', array($this, 'setupUserReplacements'));
$reps["[month]"] = date("m", $utime); $this->helper->registerCallback('setupShippingReplacements', array($this, 'setupShippingReplacements'));
$reps["[day]"] = date("d", $utime); $this->helper->registerCallback('setupThirdPartyReplacements', array($this, 'setupThirdPartyReplacements'));
$reps["[hour]"] = date("H", $utime);
$reps["[hour12]"] = date("h", $utime);
$reps["[ampm]"] = date("a", $utime);
$reps["[minute]"] = date("i", $utime);
$reps["[second]"] = date("s", $utime);
$milliseconds = (int)(1000*($utime - (int)$utime));
$millisecondsstring = sprintf('%03d', $milliseconds);
$reps["[decisecond]"] = $millisecondsstring[0];
$reps["[centisecond]"] = substr($millisecondsstring, 0, 2);
$reps["[millisecond]"] = $millisecondsstring;
} }
public function getOrdernumberHelper() {
return $this->helper;
}
protected function setupAddressReplacements(&$reps, $prefix, $address, $nrtype) public function setupAddressReplacements(&$reps, $prefix, $address, $nrtype) {
{
if (!$address) { if (!$address) {
return; return;
} }
...@@ -103,147 +53,84 @@ class OpenTools_Ordernumber_Helper_Data extends Mage_Core_Helper_Abstract ...@@ -103,147 +53,84 @@ class OpenTools_Ordernumber_Helper_Data extends Mage_Core_Helper_Abstract
$reps["[".$prefix."countryid]"] = $country->getId(); $reps["[".$prefix."countryid]"] = $country->getId();
} }
protected function setupStoreReplacements (&$reps, $order, $nrtype) public function setupStoreReplacements (&$reps, $details, $nrtype) {
{ if (isset($details->order)) {
$store = $order->getStore(); $order = $details->order;
$reps["[storeid]"] = $store->getStoreId(); $store = $order->getStore();
$reps["[storecurrency]"] = $order->getStoreCurrency(); $reps["[storeid]"] = $store->getStoreId();
} $reps["[storecurrency]"] = $order->getStoreCurrency();
protected function setupOrderReplacements (&$reps, $order, $nrtype) }
{
$shippingAddress = $order->getShippingAddress();
$billingAddress = $order->getBillingAddress();
if ($shippingAddress) {
$address = $shippingAddress;
} else {
$address = $billingAddress;
}
/* if ($nrtype == "invoice") {
// Invoices use the billing address for un-prefixed fields
$address = $billingAddress;
} */
$reps["[orderid]"] = $order->getId();
$reps["[ordernumber]"] = $order->getIncrementId();
$reps["[orderstatus]"] = $order->getStatus();
$reps["[currency]"] = $order->getOrderCurrency()->getCurrencyCode();
$reps["[customerid]"] = $order->getCustomerId();
$this->setupAddressReplacements($reps, "", $address, $nrtype);
$this->setupAddressReplacements($reps, "shipping", $shippingAddress, $nrtype);
$this->setupAddressReplacements($reps, "billing", $billingAddress, $nrtype);
$reps["[totalitems]"] = $order->getTotalItemCount();
$reps["[totalquantity]"] = $order->getTotalQtyOrdered();
} }
protected function setupShippingReplacements(&$reps, $order, $nrtype) public function setupOrderReplacements (&$reps, $details, $nrtype) {
{ if (isset($details->order)) {
$reps["[shippingmethod]"] = $order->getShippingMethod(); $order = $details->order;
$shippingAddress = $order->getShippingAddress();
$billingAddress = $order->getBillingAddress();
if ($shippingAddress) {
$address = $shippingAddress;
} else {
$address = $billingAddress;
}
/* if ($nrtype == "invoice") {
// Invoices use the billing address for un-prefixed fields
$address = $billingAddress;
} */
$reps["[orderid]"] = $order->getId();
$reps["[ordernumber]"] = $order->getIncrementId();
$reps["[orderstatus]"] = $order->getStatus();
$reps["[currency]"] = $order->getOrderCurrency()->getCurrencyCode();
$reps["[customerid]"] = $order->getCustomerId();
$this->setupAddressReplacements($reps, "", $address, $nrtype);
$this->setupAddressReplacements($reps, "shipping", $shippingAddress, $nrtype);
$this->setupAddressReplacements($reps, "billing", $billingAddress, $nrtype);
$reps["[totalitems]"] = $order->getTotalItemCount();
$reps["[totalquantity]"] = $order->getTotalQtyOrdered();
// TODO: Add list variables, like SKUs, shipping classes, categories, manufacturers, etc.
/*
// List-valued properties for custom variable checks:
// TODO: Also implement variable for:
// - Shipping needed
// - Downloads available
$lineitems = $order->get_items();
$skus = array();
$categories = array();
$tags = array();
$shippingclasses = array();
foreach ($lineitems as $l) {
$p = $order->get_product_from_item($l);
$skus[$p->get_sku()] = 1;
foreach (wc_get_product_terms( $p->id, 'product_cat') as $c) {
$categories[$c->slug] = 1;
}
foreach (wc_get_product_terms( $p->id, 'product_tag') as $c) {
$tags[$c->slug] = 1;
}
$shippingclasses[$p->get_shipping_class()] = 1;
}
$reps["[skus]"] = array_keys($skus);
$reps["[categories]"] = array_keys($categories);
$reps["[tags]"] = array_keys($tags);
$reps["[shippingclasses]"] = array_keys($shippingclasses);
*/
}
if (isset($details->invoice)) {
$invoice = $details->invoice;
$reps["[invoiceid]"] = $invoice->getId();
}
} }
public function setupUserReplacements (&$reps, $details, $nrtype) {
protected function setupShipmentReplacements (&$reps, $shipment, $order, $nrtype) // TODO
{ // $reps["[ipaddress]"] = $details->customer_ip_address;
// TODO // $reps["[userid]"] = $details->get_user_id();
} }
protected function setupInvoiceReplacements (&$reps, $invoice, $order, $nrtype)
{ public function setupShippingReplacements(&$reps, $details, $nrtype) {
$reps["[invoiceid]"] = $invoice->getId(); if (isset($details->order)) {
} $order = $details->order;
protected function setupCreditMemoReplacements (&$reps, $creditmemo, $order, $nrtype) $reps["[shippingmethod]"] = $order->getShippingMethod();
{ }
// TODO
}
protected function setupReplacements($nrtype, $info)
{
$reps = array();
$order = $info['order'];
$this->setupDateTimeReplacements($reps, $nrtype);
$this->setupStoreReplacements($reps, $order, $nrtype);
$this->setupOrderReplacements($reps, $order, $nrtype);
$this->setupShippingReplacements($reps, $order, $nrtype);
if (isset($info['shipment'])) {
$this->setupShipmentReplacements($reps, $info['shipment'], $order, $nrtype);
}
if (isset($info['invoice'])) {
$this->setupInvoiceReplacements($reps, $info['invoice'], $order, $nrtype);
}
if (isset($info['creditmemo'])) {
$this->setupCreditMemoReplacements($reps, $info['creditmemo'], $order, $nrtype);
}
// Mage::Log('Replacements at end of setupReplacements(nrtype='.$nrtype.'): '.print_r($reps,1), null, 'ordernumber.log');
return $reps;
}
protected function applyCustomVariables ($nrtype, $info, $reps, $customvars)
{
static $listvars = array("groups", "skus");
// Mage::getSingleton('core/session')->addWarning('<pre>custom variables, conditionvar='.$conditionvar.', reps='.print_r($reps,1).', customvars='.print_r($customvars,1).'</pre>');
$order = $info['order'];
$customer = $order->getCustomer();
$address = $order->getShippingAddress();
$store = $order->getStore();
// $this->logitem("Order: ", $order);
foreach ($customvars as $c) {
$conditionvar = $c['conditionvar'];
$found = false;
$compareval = null;
if (!$found && isset($reps[$conditionvar])) {
$found = true;
$compareval = $reps[$conditionvar];
} elseif (isset($reps['['.$conditionvar.']'])) {
$found = true;
$compareval = $reps['['.$conditionvar.']'];
} elseif (in_array($conditionvar, $listvars)) {
// TODO: Handle lists
$found = true;
$compareval = null /* TODO */;
} elseif ($order && $compareval = $order->getData($conditionvar)) {
// TODO: Handle order property
$found = true;
} elseif ($customer && $compareval = $customer->getData($conditionvar)) {
// TODO: Handle customer property
$found = true;
} elseif ($address && $compareval = $address->getData($conditionvar)) {
// TODO: Handle address property
$found = true;
} elseif ($store && $compareval = $store->getData($conditionvar)) {
// TODO: Handle store property
$found = true;
} else {
// TODO: Handle other possible properties!
// TODO: Print out warning that variable could not be found.
// Mage::getSingleton('core/session')->addWarning($this->__('Unable to find variable "%s" used in the ordernumber custom variable definitions.', $conditionvar));
}
if ($found) {
if (is_array($compareval)) {
$match = in_array($c['conditionval'], $compareval);
} else {
$match = ($c['conditionval'] == $compareval);
}
}
if ($found && $match) {
$varname = '['.strtolower($c['newvar']).']';
$reps[$varname] = $c['newval'];
}
// $this->logitem("Reps after $conditionvar: ", $order);
}
return $reps;
}
protected function doReplacements ($fmt, $reps)
{
// First, replace all random...[n] fields. This needs to be done with a regexp and a callback:
$fmt = preg_replace_callback ('/\[(random)(.*?)([0-9]*?)\]/', array($this, 'replaceRandom'), $fmt);
return str_ireplace (array_keys($reps), array_values($reps), $fmt);
}
public function replace_fields ($fmt, $nrtype, $info, $customvars)
{
$reps = $this->setupReplacements ($nrtype, $info);
$reps = $this->applyCustomVariables ($nrtype, $info, $reps, $customvars);
// $this->logitem("All replacements after custom variables: ", $reps);
return $this->doReplacements($fmt, $reps);
} }
......
...@@ -78,6 +78,17 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract ...@@ -78,6 +78,17 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract
$creditmemo = $observer->getEvent()->getCreditmemo(); $creditmemo = $observer->getEvent()->getCreditmemo();
return $this->handle_new_number('creditmemo', $creditmemo, $creditmemo->getOrder()); return $this->handle_new_number('creditmemo', $creditmemo, $creditmemo->getOrder());
} }
protected function getCustomVariables() {
$customvars = Mage::getStoreConfig('ordernumber/replacements', $storeId);
if (isset($customvars['replacements'])) {
$customvars = $customvars['replacements'];
}
if ($customvars) {
$customvars = unserialize($customvars);
}
return $customvars;
}
public function handle_new_number ($nrtype, $object, $order) public function handle_new_number ($nrtype, $object, $order)
{ {
...@@ -87,90 +98,56 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract ...@@ -87,90 +98,56 @@ class OpenTools_Ordernumber_Model_Observer extends Mage_Core_Model_Abstract
$enabled = Mage::getStoreConfig($cfgprefix.'/active', $storeId); $enabled = Mage::getStoreConfig($cfgprefix.'/active', $storeId);
if ($enabled && !$object->getId() && !$object->getOrdernumberProcessed()) { if ($enabled && !$object->getId() && !$object->getOrdernumberProcessed()) {
// This trigger might be called twice, so ignore it the second time!
$object->setOrdernumberProcessed(true);
$format = Mage::getStoreConfig($cfgprefix.'/format', $storeId); $format = Mage::getStoreConfig($cfgprefix.'/format', $storeId);
$scope = Mage::getStoreConfig($cfgprefix.'/scope', $storeId); $scope = Mage::getStoreConfig($cfgprefix.'/scope', $storeId);
$reset = Mage::getStoreConfig($cfgprefix.'/reset', $storeId); $global = Mage::getStoreConfig($cfgprefix.'/global', $storeId);
$counterfmt = Mage::getStoreConfig($cfgprefix.'/resetformat', $storeId); $customvars = $this->getCustomVariables();
$digits = Mage::getStoreConfig($cfgprefix.'/digits', $storeId); $ctrsettings = array(
$increment = Mage::getStoreConfig($cfgprefix.'/increment', $storeId); "${nrtype}_format" => '',
"${nrtype}_counter" => '',
// First, replace all variables: "${nrtype}_global" => $global,
"${nrtype}_padding" => 1,
"${nrtype}_step" => 1,
"${nrtype}_start" => 1,
"${nrtype}_scope" => $scope,
);
$helper = Mage::helper('ordernumber'); $helper = Mage::helper('ordernumber');
$info = array('order'=>$order, $nrtype=>$object);
// The ordernumber/...numbers/reset contains some pre-defined counter names as
// well as enum values indicating certain behavior. Replace those by the actual
// counter names for the current counter:
switch ($reset) {
case 0:
$format = $format . '|';
break;
case 1:
$format = $format . '|' . $format;
break;
case -1:
$format = $format . '|' . $counterfmt;
break;
default:
/* Pre-defined counter formats saved in the /reset config field */
$counterfmt = $format . '|' . $reset;
break;
}
$customvars = Mage::getStoreConfig('ordernumber/replacements', $storeId);
if (isset($customvars['replacements'])) {
$customvars = $customvars['replacements'];
}
if ($customvars) {
$customvars = unserialize($customvars);
}
// Mage::Log('customvars: '.print_r($customvars,1), null, 'ordernumber.log');
// Now apply the replacements
$nr = $helper->replace_fields ($format, $nrtype, $info, $customvars);
// Split at a | to get the number format and a possibly different counter increment format
// If a separate counter format is given after the |, use it, otherwise reuse the number format itself as counter format
$parts = explode ("|", $nr);
$format = $parts[0];
$counterfmt = $parts[(count($parts)>1)?1:0];
// Now find the next counter that does not lead to duplicate $info = array('order'=>$order, $nrtype=>$object, 'store'=>$store);
$newnumber = null; $newnumber = null;
$model = $this->getModel(); $count = 0;
$created = false;
$count = 0; // Make up to 150 attempts to create a number...
$created = false; while (empty($newnumber) && ($count<150)) {
// Make up to 150 attempts to create a number... $count += 1;
while (empty($newnumber) && ($count<150)) { $newnumber = $helper->getHelper()->createNumber ($fmt, $nrtype, $info, $customvars, $ctrsettings);
$count += 1;
// Check whether that number is already in use. If so, attempt to create the next number:
// Find the next counter value $modelname=($nrtype=='order') ? 'sales/order' : ('sales/order_'.$nrtype);
$scopeId = ''; $collection = Mage::getModel($modelname)->getCollection()->addFieldToFilter('increment_id',$newnumber);
if ($scope>=1) $scopeId = $store->getWebsiteId(); if ($collection->getAllIds()) {
if ($scope>=2) $scopeId .= '/' . $store->getGroupId(); Mage::Log("$nrtype number $newnumber already in use, trying again", null, 'ordernumber.log');
if ($scope>=3) $scopeId .= '/' . $store->getStoreId(); //number already exists => next attempt in the loop
$count = $model->getCounterValueIncremented($nrtype, $counterfmt, $increment, $scopeId); $newnumber = null;
$newnumber = str_replace ("#", sprintf('%0' . (int)$digits . 's', $count), $format); } else {
$object->setIncrementId($newnumber);
// Check whether that number is already in use. If so, attempt to create the next number: $created = true;
$modelname=($nrtype=='order') ? 'sales/order' : ('sales/order_'.$nrtype); }
$collection = Mage::getModel($modelname)->getCollection()->addFieldToFilter('increment_id', $newnumber); }
if ($collection->getAllIds()) { if (!$created) {
Mage::Log("$nrtype number $newnumber already in use, trying again", null, 'ordernumber.log'); Mage::Log("Unable to create $nrtype number for counter format $nr (name $counterfmt, scope $scopeId)...", null, 'ordernumber.log');
//number already exists => next attempt in the loop }
$newnumber = null; return $newnumber;
} else { }
$object->setIncrementId($newnumber); }
$created = true;
} // // Find the next counter value
} // $scopeId = '';
if (!$created) { // if ($scope>=1) $scopeId = $store->getWebsiteId();
Mage::Log("Unable to create $nrtype number for counter format $nr (name $counterfmt, scope $scopeId)...", null, 'ordernumber.log'); // if ($scope>=2) $scopeId .= '/' . $store->getGroupId();
} // if ($scope>=3) $scopeId .= '/' . $store->getStoreId();
} // $count = $model->getCounterValueIncremented($nrtype, $counterfmt, $increment, $scopeId);
} // $newnumber = str_replace ("#", sprintf('%0' . (int)$digits . 's', $count), $format);
} }
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
**/ **/
if ( !defined( 'ABSPATH' ) && !defined('_JEXEC') ) { if ( !defined( 'ABSPATH' ) && !defined('_JEXEC') && !defined('_OPENTOOLS_ORDERNUMBER_FRAMEWORK')) {
die( 'Direct Access to ' . basename( __FILE__ ) . ' is not allowed.' ); die( 'Direct Access to ' . basename( __FILE__ ) . ' is not allowed.' );
} }
...@@ -367,8 +367,6 @@ class OrdernumberHelper { ...@@ -367,8 +367,6 @@ class OrdernumberHelper {
$format = $this->setupNumberFormatString($fmt, $type, $order, $reps); $format = $this->setupNumberFormatString($fmt, $type, $order, $reps);
$format = $this->doReplacements($format, $reps); $format = $this->doReplacements($format, $reps);
$ctrsettings = $this->extractCounterSettings ($format, $type, $ctrsettings); $ctrsettings = $this->extractCounterSettings ($format, $type, $ctrsettings);
JFactory::getApplication()->enqueueMessage("<pre>Counter Settings: ".print_r($ctrsettings,1)."</pre>", 'error');
// JFactory::getApplication()->enqueueMessage("<pre>Replacements for $type:".print_r($reps,1)."</pre>", 'error');
// Increment the counter only if the format contains a placeholder for it! // Increment the counter only if the format contains a placeholder for it!
if (strpos($ctrsettings["${type}_format"], "#") !== false) { if (strpos($ctrsettings["${type}_format"], "#") !== false) {
$countername = $ctrsettings["${type}_counter"]; $countername = $ctrsettings["${type}_counter"];
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
* @license AFL * @license AFL
**/ **/
defined ('_OPENTOOLS_ORDERNUMBER_FRAMEWORK') or define('_OPENTOOLS_ORDERNUMBER_FRAMEWORK', 1);
if (!class_exists( 'OrdernumberHelper' )) if (!class_exists( 'OrdernumberHelper' ))
require_once (dirname(__FILE__) . '/library/ordernumber_helper.php'); require_once (dirname(__FILE__) . '/library/ordernumber_helper.php');
...@@ -28,7 +29,7 @@ class OrdernumberHelperMagento extends OrdernumberHelper { ...@@ -28,7 +29,7 @@ class OrdernumberHelperMagento extends OrdernumberHelper {
$helper = new OrdernumberHelperMagento(); $helper = new OrdernumberHelperMagento();
} }
return $helper; return $helper;
} }
/** /**
* HELPER FUNCTIONS, Magento-specific * HELPER FUNCTIONS, Magento-specific
...@@ -41,73 +42,31 @@ class OrdernumberHelperMagento extends OrdernumberHelper { ...@@ -41,73 +42,31 @@ class OrdernumberHelperMagento extends OrdernumberHelper {
// TODO // TODO
// return plugins_url('library/' . $type . '/' . $file, __FILE__); // return plugins_url('library/' . $type . '/' . $file, __FILE__);
} }
public function print_admin_styles() {
// wp_register_style('ordernumber-styles', $this->urlPath('css', 'ordernumber.css'));
// wp_enqueue_style('ordernumber-styles');
}
public function print_admin_scripts() {
// wp_register_script( 'ordernumber-script', $this->urlPath('js', 'ordernumber.js', __FILE__), array('jquery') );
// wp_enqueue_script( 'ordernumber-script');
// Handle the translations:
// $localizations = array( 'ajax_url' => admin_url( 'admin-ajax.php' ) );
// $localizations['ORDERNUMBER_JS_JSONERROR'] = $this->__("Error reading response from server:");
// $localizations['ORDERNUMBER_JS_NOT_AUTHORIZED'] = $this->__("You are not authorized to modify order number counters.");
// $localizations['ORDERNUMBER_JS_NEWCOUNTER'] = $this->__("Please enter the format/name of the new counter:");
// $localizations['ORDERNUMBER_JS_ADD_FAILED'] = $this->__("Failed adding counter {0}");
// $localizations['ORDERNUMBER_JS_INVALID_COUNTERVALUE'] = $this->__("You entered an invalid value for the counter.\n\n");
// $localizations['ORDERNUMBER_JS_EDITCOUNTER'] = $this->__("{0}Please enter the new value for the counter '{1}' (current value: {2}):");
// $localizations['ORDERNUMBER_JS_MODIFY_FAILED'] = $this->__("Failed modifying counter {0}");
// $localizations['ORDERNUMBER_JS_DELETECOUNTER'] = $this->__("Really delete counter '{0}' with value '{1}'?");
// $localizations['ORDERNUMBER_JS_DELETE_FAILED'] = $this->__("Failed deleting counter {0}");
// in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value function getAllCounters($type) {
// wp_localize_script( 'ordernumber-script', 'ajax_ordernumber', $localizations ); // This function is not implemented for Magento, as we don't use the
} // library's counter modification table, but a Magento-customized
// counter modification table without AJAX calls!
return array();
function getAllCounters($type) {
$counters = array();
// $pfxlen = strlen(self::$ordernumber_counter_prefix );
// foreach (wp_load_alloptions() as $name => $value) {
// if (substr($name, 0, $pfxlen) == self::$ordernumber_counter_prefix) {
// $parts = explode('-', substr($name, $pfxlen), 2);
// if (sizeof($parts)==1) {
// array_unshift($parts, 'ordernumber');
// }
// if ($parts[0]==$type) {
// $counters[] = array(
// 'type' => $parts[0],
// 'name' => $parts[1],
// 'value' => $value,
// );
// }
// }
// }
return $counters;
} }
function getCounter($type, $format, $default=0) { function getCounter($type, $format, $default=0) {
return get_option (self::$ordernumber_counter_prefix.$type.'-'.$format, $default); // TODO...
// return get_option (self::$ordernumber_counter_prefix.$type.'-'.$format, $default);
} }
function addCounter($type, $format, $value) { function addCounter($type, $format, $value) {
return $this->setCounter($type, $format, $value); return $this->setCounter($type, $format, $value);
} }
function setCounter($type, $format, $value) { function setCounter($type, $format, $value) {
return update_option(self::$ordernumber_counter_prefix.$type.'-'.$format, $value); // TODO...
// return update_option(self::$ordernumber_counter_prefix.$type.'-'.$format, $value);
} }
function deleteCounter($type, $format) { function deleteCounter($type, $format) {
return delete_option(self::$ordernumber_counter_prefix.$type.'-'.$format); // TODO...
// return delete_option(self::$ordernumber_counter_prefix.$type.'-'.$format);
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment