classes/php5_classes/Order.class.php

Properties

Description

Holds the geoOrder object class.

Classes

geoOrder

Properties

 
 
System  
No 
No 

Description

The geoOrder object, an object representation of an order in the system.
One geoOrder object per order, so there can be many geoOrder objects in one page load.

Methods

__construct, addItem, detachItem, get, getAdmin, getBillingInfo, getBuyer, getCreated, getId, getInvoice, getItem, getItemCostDetails, getOrder, getOrderTotal, getParent, getRecurringBilling, getSeller, getStatus, processStatusChange, remove, removeData, save, serialize, set, setAdmin, setBillingInfo, setBuyer, setCreated, setId, setInvoice, setItem, setParent, setRecurringBilling, setSeller, setStatus, sortItems, touch, unSerialize,

__construct( ) : n/a

Description

Constructor, initializes stuff.

Return value

Type Description
n/a n/a

addItem( \geoOrderItem   $item, ) : boolean

Description

Adds an item to this order. The item can be not serialized yet, if that is the case it will be added to the new array inside of the items array.

Arguments

Name Type Description Default
$item \geoOrderItem

Return value

Type Description
boolean true if add was successful, false otherwise.

detachItem( int   $item_id, ) : n/a

Description

Detaches an item from this order object.

Arguments

Name Type Description Default
$item_id int

Return value

Type Description
n/a n/a

get( string   $item, mixed   $default = false, ) : Mixed

Description

Gets the specified item from the registry, or if item is one of the "main" items it gets that instead.

Arguments

Name Type Description Default
$item string
$default mixed

What to return if the item is not set.

false

Return value

Type Description
Mixed the specified item, or false if item is not found.

getAdmin( ) : int

Description

Gets the admin (order's admin creator) ID, or 0 if this is order was placed on client side

Return value

Type Description
int

Tags

Name Description
since Version 5.2.0

getBillingInfo( ) : bool

Description

Convienence method, gets the billing info on the invoice of this order, if no invoice currently exists, returns empty array.
See {@link geoInvoice::getBillingInfo()} for more details.

Return value

Type Description
bool

Tags

Name Description
since Version 4.0.5

getBuyer( ) : int

Description

Gets the buyer ID.

Return value

Type Description
int

getCreated( ) : int

Description

Gets the date this order item was created, as unix timestamp

Return value

Type Description
int

getId( ) : mixed

Description

Get the ID for this order.

Return value

Type Description
mixed Int if ID is set, or null if this is a new order that has not been serialized (saved to database) yet

getInvoice( ) : \geoInvoice

Description

Gets the geoInvoice object attached to this order.

Return value

Type Description
\geoInvoice

getItem(   $id = 0, ) : \geoOrderItem|array

Description

Gets an item object attached to this order, specified by the ID, or an array of all the item objects attached to this order if no ID is specified.

Arguments

Name Type Description Default
$id n/a 0

Return value

Type Description
\geoOrderItem|array geoOrderItem object if ID is int and valid, or array of all order item objects if id is 0, or the first order item that matches the given type if id is a string, or null if id is not valid.

getItemCostDetails( ) : array

Description

Returns an array of info from all the items in the order, by calling getCostDetails() for each item. This is primarily meant for payment gateways to use to see if the cart may contain something that the gateway is restricted from being used for.

Return value

Type Description
array

Tags

Name Description
since Version 6.0.0

getOrder( int   $id = 0, ) : \geoOrder

Description

Gets the order specified by the ID and returns the geoOrder object for that order, or a new blank order if the id is 0 or not a valid ID.
Should be called statically (like geoOrder::getOrder($id) )

Arguments

Name Type Description Default
$id int

If 0 or invalid ID, Object returned is for a new blank order.

0

Return value

Type Description
\geoOrder

getOrderTotal( int   $up_to_process_order = 0, ) : float

Description

Gets the total of all the items currently attached to this order.

Arguments

Name Type Description Default
$up_to_process_order int

If specified and not 0, will only add up items with a process order less than the amount set here.

0

Return value

Type Description
float

getParent( ) : mixed

Description

Gets the parent order, or returns null if there is no parent

Return value

Type Description
mixed Either geoOrder object, or null if no parent exists

getRecurringBilling( ) : \geoRecurringBilling

Description

Gets the recurring billing object for this order, or false if none was found or this is not a recurring billing.

Return value

Type Description
\geoRecurringBilling

Tags

Name Description
since Version 4.1.0

getSeller( ) : int

Description

Gets the seller (order's creator) ID, or 0 if this is order from

Return value

Type Description
int

getStatus( ) : string

Description

Get the current status of the order. Note that default value (if not set yet) is pending.

Return value

Type Description
string

processStatusChange( string   $newStatus, bool   $pushToItems = true, bool   $sendEmailNotices = true, ) : \geoOrder

Description

Call this bad boy to make things happen. If pushToItems is false, you might as well be calling setStatus instead. But if it is true, it will check the settings for each parent item in this order, and if it does not need admin approval to activate, it will call that item's processStatusChange() function, passing in either active or pending.
If the parent item has a category set, it will also call the update count for that category automatically.

Arguments

Name Type Description Default
$newStatus string

Set to active to activate it, anything else to deactivate it and everything in this order.

$pushToItems bool

If false, this will basically act just like calling setStatus()

true
$sendEmailNotices bool

This var will be passed along to any items if changing the status of the item is warrented. The item should then act accordingly, and if false no e-mails will be sent out.

true

Return value

Type Description
\geoOrder for easy chaining of commands :)

remove( int   $id, bool   $removeAttached = true, bool   $removeAttachedOrders = true, ) : n/a

Description

Static function that removes an order as specified by ID, and also recursively removes everything attached to it. (this includes child orders, order items, invoices, transactions, etc).
If the order no longer exists, but there are still "ghost" items attached to this order, this function will remove those ghost items.

Arguments

Name Type Description Default
$id int
$removeAttached bool

if false, it will not remove stuff attached to this order like registry, order items, and invoice(s)

true
$removeAttachedOrders bool

if false, will not remove any child orders of this order.

true

Return value

Type Description
n/a n/a

removeData( int   $id, bool   $removeAttached = true, bool   $removeAttachedOrders = true, ) : n/a

Description

Works just like geoOrder::remove() except that this is meant to not affect any listings or other data that may still be "live", this is used to remove data once it becomes old, in order to clear up space.

Arguments

Name Type Description Default
$id int
$removeAttached bool

if false, it will not remove stuff attached to this order like registry, order items, and invoice(s)

true
$removeAttachedOrders bool

if false, will not remove any child orders of this order.

true

Return value

Type Description
n/a n/a

save( ) : n/a

Description

Alias of geoOrder::serialize() - see that method for details.

Return value

Type Description
n/a n/a

serialize( ) : n/a

Description

Serializes the current order (saves changes in the database, or creates new order if the order's id is not set. If it is a new order, it will set the order ID after it has been inserted into the database.
Also automatically serializes any objects attached to it that are not already serialized.

Return value

Type Description
n/a n/a

set( string   $item, mixed   $value, ) : n/a

Description

Sets the given item to the given value. If item is one of built-in items, it sets that instead of something from the registry.

Arguments

Name Type Description Default
$item string
$value mixed

Return value

Type Description
n/a n/a

setAdmin( int   $value, ) : n/a

Description

Sets the admin (order's admin creator) ID.

Arguments

Name Type Description Default
$value int

Admin's ID, or 0 if order is created on client side.

Return value

Type Description
n/a n/a

Tags

Name Description
since Version 5.2.0

setBillingInfo(   $info, ) : bool

Description

Convienence method, sets the billing info on the invoice of this order, if no invoice currently exists, it creates a blank one.
See {@link geoInvoice::setBillingInfo()} for more details.

Arguments

Name Type Description Default
$info n/a

Return value

Type Description
bool

Tags

Name Description
since Version 4.0.5

setBuyer( int   $value, ) : n/a

Description

Sets the buyer ID.

Arguments

Name Type Description Default
$value int

Return value

Type Description
n/a n/a

setCreated( int   $val, ) : n/a

Description

Sets the date this item was created.

Arguments

Name Type Description Default
$val int

Return value

Type Description
n/a n/a

setId( int   $value, ) : n/a

Description

Sets the ID for this order. Can only be used internally.

Arguments

Name Type Description Default
$value int

Return value

Type Description
n/a n/a

setInvoice( Mixed   $value, ) : n/a

Description

Set the invoice attached to this order

Arguments

Name Type Description Default
$value Mixed

Invoice ID attached to this order, or geoInvoice object for invoice that has already been serialized.

Return value

Type Description
n/a n/a

setItem( int   $id, Mixed   $value, ) : n/a

Description

Sets an item. Requires an ID to set. If there is no ID yet, use geoOrder::addItem() instead.
This method cannot be used to add new items that do not have an ID yet.

Arguments

Name Type Description Default
$id int
$value Mixed

Either ID for item, or item object.

Return value

Type Description
n/a n/a

setParent( mixed   $value, ) : n/a

Description

Set the parent.

Arguments

Name Type Description Default
$value mixed

Either the ID for the parent order, or a geoOrder object for an order that has already been serialized (so it has an ID)

Return value

Type Description
n/a n/a

setRecurringBilling( \geoRecurringBilling   $recurring, ) : n/a

Description

Sets recurring billing for this order.

Arguments

Name Type Description Default
$recurring \geoRecurringBilling

Return value

Type Description
n/a n/a

Tags

Name Description
since Version 4.1.0

setSeller( int   $value, ) : n/a

Description

Sets the seller (order's creator) ID.

Arguments

Name Type Description Default
$value int

Seller's ID, or 0 if order is for listing charge.

Return value

Type Description
n/a n/a

setStatus( string   $value, ) : n/a

Description

Set the status of this order

Arguments

Name Type Description Default
$value string

Return value

Type Description
n/a n/a

sortItems( ) : \geoOrder

Description

Sorts all the items in the order, good if you want to display stuff in the right order, and some of the items have been recently added on this page load.

Return value

Type Description
\geoOrder For chaining functions

touch( ) : n/a

Description

Use when this object, or one of it's child objects, has been changed, so that when it is serialized, it will know there are changes that need to be serialized.
This also recursevly touches all "parent" objects that this one is attached to. Note that this is automatically called internally when any of the set functions are used.

Return value

Type Description
n/a n/a

unSerialize( int   $id = 0, ) : n/a

Description

Unserializes the object for the given ID and applies parameters to this object.

Arguments

Name Type Description Default
$id int 0

Return value

Type Description
n/a n/a

Properties

$_admin, $_buyer, $_created, $_id, $_invoice, $_items, $_orders, $_parent, $_pendingChanges, $_recurringBilling, $_registry, $_seller, $_status,

int  private  $_admin =

Admin - will be 0 if order was created on front side, or admin ID for admin that created the order


int  private  $_buyer =

Buyer - User ID for person the order is for.


int  private  $_created =

Date this order was created.

unix timestamp




int  private  $_id =

ID of this order, used to uniquely identify this order. If this is newly created order that hasn't been serialized yet, the order id will not be known.


mixed  private  $_invoice =

Invoice for this order - will be null if there is no invoice.


array  private  $_items =

Array of item objects attached to this order.


array  private  static $_orders =

Static array of orders that have been retrieved (keep track of them so we don't have to keep getting the same one over and over)


\geoOrder  private  $_parent =

Parent order object, or null if no parent.


boolean  private  $_pendingChanges =

Used internally to remember whether there has been changes to the order since it was last serialized. If there is not changes, when serialize is called, nothing will be done.


\geoRecurringBilling  private  $_recurringBilling =

The recurring billing set for this order.


array  private  $_registry =

Array of info, can be used for different stuff.


int  private  $_seller =

Seller - will be 0 if this is an order from site to a seller.


string  private  $_status =

Status of order. One of following: - pending (waiting on payment) - pending_admin (waiting on admin approval) - suspended - canceled - fraud - active


Documentation was generated by phpDocumentor 2.2.0 .

Namespaces

  • global

    Packages

    • Default
      • ExampleAddon
        • addon_example_admin
          In charge of doing stuff on the admin side, this is optional.
        • addon_example_info
          Required class for addons, this is the Addon information class, used by the addon system to determine what the addon can do. Also contains info about the addon that can be viewed in the addon management page in the admin.
        • addon_example_pages
          Addon page class, used by the addon system to display pages on the client side.
        • addon_example_setup
          This class is not required. If it, and the function for a particular routine exist, then that function will be called IN ADDITION TO the automated routines of the addon framework.
        • addon_example_tags
          Expects one function for each tag. Function name should be the same as the tag name. Can also have a constructor if anything needs to be constructed.
        • addon_example_util
          This is where to put functions that the main part of the addon will use.
        • eWidgetOrderItem
          This order item is designed to allow users on your site to purchase an eWidget.
      • System
        • DataAccess
          This is the main Database access object.
        • Singleton
          Singleton method class
        • _templateOrderItem
          Developers: use this file as a template to create a new order item.
        • _templatePaymentGateway
          This is the "developer template" payment gateway handler, a developer could use this file as a starting point for creating a new payment gateway in the system.
        • geoAPI
          The main system class for receiving and handling remote API calls, this acts as a translation layer between the communication with the "outside" and each API call.
        • geoAddon
          This is the class that handles anything and everything to do with addons.
        • geoArrayTools
          Utility functions for manipulating arrays
        • geoBrowse
          Contains functions common to browsing listings
        • geoBrowsingFilter
          System for activating, storing, and deactivating browsing filters.
        • geoCJAX
          Class that wraps the CJAX_FRAMEWORK, used to get the CJAX class.
        • geoCache
          This is the main part of the Geo cache system, it does all the "low level" stuff like writing files and escaping cache data.
        • geoCacheModule
          Part of Geo Cache system, specifically tuned to work best with cacheing module data (which will be an array).
        • geoCachePage
          Cache system specifically tuned to work best with cacheing output of pages and modules
        • geoCacheSetting
          Part of Geo Cache system, specifically tuned to work best with cacheing site-wide key=value type settings.
        • geoCacheText
          Part of Geo Cache system, this part specifically tuned to work best with cacheing language specific messages.
        • geoCalendar
          Holds utility method(s) for manipulating stuff dealing with calendar selector.
        • geoCart
          This class is behind the cart, loading all the order items and such and displaying, and processing all the different pages.
        • geoCategory
          Utility class that holds various methods to do stuff with categories in the system.
        • geoCombineResources
          This class helps to combine CSS and JS files, minify them, and optionally compress them.
        • geoCron
          This is the cron job backend, it handles all the communication and security and all that.
        • geoCrypt
          Class to use for encrypting information that needs to be able to be retrieved later.
        • geoDate
          Holds utility method(s) for manipulating stuff dealing with dates.
        • geoEmail
          Class that sends out e-mails.
        • geoFields
          Class that holds settings information for fields to use.
        • geoFieldsField
          A mini object to hold data about a specific field.
        • geoFile
          As the name implies, this is used for file-based utility methods.
        • geoFilter
          A few utility methods, good for filtering stuff.
        • geoFormatString
          Used to display a message nice and pretty, we'll probably be getting rid of this class though so don't go crazy using it.
        • geoHTML
          Class to generate chunks of HTML that are very common, used the most in the admin panel.
        • geoImage
          This class is responsible for a lot of the image processing, along with other aspects like generating the image tag for thumbnails.
        • geoInvoice
          This is the invoice object representing an invoice in the system.
        • geoLeveledField
          Class for doing common things with leveled fields.
        • geoListing
          A listing object, basically a container object for particular listing.
        • geoListingDisplay
          This is basically a container that is responsible for helping to display {listing .
        • geoListingFeed
          Class that helps to render RSS or other types of feeds based on list of listings.
        • geoMaster
          This is dedicated class for getting the value of, and setting, the various "master switches" within the software. Since this is meant as an easy way to get the values of master switches, most of the methods are static.
        • geoNumber
          Utility functions relating to number conversion/manipulation/validation ect.
        • geoOrder
          The geoOrder object, an object representation of an order in the system.
        • geoOrderItem
          The class that all order items must extend.
        • geoPC
          Used for login credential validation, password hashing, etc. along with software licensing.
        • geoPagination
          Utility functions useful for generating pagination of a results page such as when browing ads or searching
        • geoPaymentGateway
          This class should be extended by each different payment gateway, this will have some default functions that each gateway will inherit, and also has a few final static methods used by the system to affect all order items.
        • geoPlanItem
          A container to hold settings for a particular order item type, according to price plan ID, and optionally category ID for category specific settings.
        • geoRecurringBilling
          The geoRecurringBilling object, an object representation of a recurring billing in the system.
        • geoRegion
          Stuff for regions and sub-regions.
        • geoRegistry
          Handy little object, can be used to set registry type settings.
        • geoSearchUtils
          Class for search utilities.
        • geoSellerBuyer
          Handles back-end for the seller/buyer payment gateways, to allow the buyer to more easily pay the seller for a won auction. This handles the underlying system, but the actual work is done by individual seller/buyer gateways, for instance the Paypal buy-now functionality.
        • geoSession
          Manages session storage and session cookies for user sessions.
        • geoString
          Utility functions relating to languages and string manipulation.
        • geoStringData
          This class is to store accented chars, to be used by {@link geoString::removeAccents()}, mainly to keep the String.class.php file un-cluttered.
        • geoTable
          NOT FULLY IMPLEMENTED! Do not use this class yet as it is not finished and may change drastically before we are done with it, or may even be removed.
        • geoTableRow
          NOT FULLY IMPLEMENTED! Do not use this class yet as it is not finished and may change drastically before we are done with it, or may even be removed.
        • geoTableRowset
          NOT FULLY IMPLEMENTED! Do not use this class yet as it is not finished and may change drastically before we are done with it, or may even be removed.
        • geoTableSelect
          Class used to generate a select query, useful when multiple areas want to affect a single query, for instance when generating a search query and there are addons involved.
        • geoTables
          Used to hold database table names, used throughout the code.
        • geoTemplate
          Template object that extends the Smarty class (a 3rd party library) to enable using templates to display things.
        • geoTransaction
          This is the object used for a transaction in the order and invoice system.
        • geoUser
          An object representative of a certain user in the system.
        • geoUserRating
          Store, retrieve, and display inter-user ratings
        • geoUtil
          Misc utility functions
        • geoView
          As the name implies, this is used for creating the page view. It does take a little setup (like any class), the setup is normally done in the display_page method in geoSite, or display_page in geoAdmin if displaying a page in the admin.
        • iApiTransport
          Interface for API Transports, a transport must implement this interface for the system to use it.
        • iOrderItem
          You cannot have abstract static functions, so instead need to have an interface to force the given static functions to be defined.
        • metaDbTables
          Used so that old locations that use the old name geoTables will still work.