Press "Enter" to skip to content

Category: Net: Techy: PHP

Posts about the PHP programming language

PHP SplFileInfo string values

Whilst PHP’s documentation of SplFileInfo isn’t “bad” as such, it can be tricky to remember what string functions (such as getBasename, getExtension, getFilename, getPath, getPathname, getRealPath and __toString) return under which circumstances. Hence this post! To generate this data, we’re going to start off with a RecursiveDirectoryIterator with an optional callback filter (to enable us to later on, filter the returned values): Give the file /var/task/assets/fonts/montserrat-v14-latin-700.eot and the “start” directory of /var/task , we get the following: fileInfo->getBasename = montserrat-v14-latin-700.eot fileInfo->getExtension = eot fileInfo->getFilename = montserrat-v14-latin-700.eot fileInfo->getPath = /var/task/assets/fonts fileInfo->getPathname = /var/task/assets/fonts/montserrat-v14-latin-700.eot fileInfo->getRealPath = /var/task/assets/fonts/montserrat-v14-latin-700.eot fileInfo->__toString = /var/task/assets/fonts/montserrat-v14-latin-700.eot directoryIterator->getBasename = assets directoryIterator->getExtension = directoryIterator->getFilename = assets directoryIterator->getPath = /var/task directoryIterator->getPathname = /var/task/assets directoryIterator->getRealPath = /var/task/assets directoryIterator->__toString = assets filterIterator->getBasename = montserrat-v14-latin-700.eot filterIterator->getExtension = eot filterIterator->getFilename = montserrat-v14-latin-700.eot filterIterator->getPath = /var/task/assets/fonts filterIterator->getPathname = /var/task/assets/fonts/montserrat-v14-latin-700.eot filterIterator->getRealPath = /var/task/assets/fonts/montserrat-v14-latin-700.eot filterIterator->__toString = montserrat-v14-latin-700.eot Hope it’s useful to someone!

PHP: Flow of data: WordPress – MagicMembers Plugin

I hope this post comes in handy to any one else which has to support/deal with the MagicMembers plugin for WordPress. The [user_register\ calls mgm_content_hooks.php “function mgm_shortcode_parse” which then calls mgm_user_register_form which is in mgm_form_functions. If fetches the main registration fields using: $register_fields = mgm_get_config(‘default_register_fields’,array()); [fields such as username, email address] and the custom ones using: $cf_register_page = mgm_get_class(‘member_custom_fields’)->get_fields_where(array(‘display’=>array(‘on_register’=>true))); [fields such as subscription_options, password, and all others] However, it then calls the filter mgm_register_form via the line: $form_html .= apply_filters(‘mgm_register_form’, $form_html); which calls, via mgm_user_hooks.php, the function mgm_wp_register_form_additional which is defined in core/hooks/mgm_user_hooks.php . Using the templates it gets from two other filters (mgm_generate_register_form_template and mgm_register_form_template), it then tries to build the template using the filter mgm_generate_register_form_html. This filter (again defined in core/hooks/mgm_user_hooks.php) calls the function mgm_generate_register_form_html (again defined in mgm_user_hooks.php) and then the mgm_register_form_additional_html filter – which isn’t defined. So, in short: shortcode [user_register\ -> function mgm_shortcode_parse -> function mgm_user_register_form -> filter mgm_register_form -> function mgm_user_hooks -> function mgm_wp_register_form_additional -> filter mgm_generate_register_form_html -> function mgm_generate_register_form_html -> filter mgm_register_form_additional_html

PHP: Magento: Extract orders based on tax status and payment type

When you are doing your quarterly VAT returns and inputting details of your Magento shopping cart ordersinto your accounting software (such as the brilliant Crunch system), wouldn’t it be handy to be able to get a simple list of all orders between two dates, whether tax was paid on the order or not (note: this query will NOT work if you have orders with taxable and non-taxable items) and the method of payment (if you are running the SagePaySuite, it’ll also list whether payment was made via Amex): SELECT COUNT(*) AS ordercount,SUM(nettotal) AS nettotal,SUM(taxamount) AS taxamount,taxstatus,paymenttype FROM ( SELECT sales_flat_order.increment_id AS orderid, sales_flat_order.entity_id AS internalid, sales_flat_order.base_total_paid-sales_flat_order.base_tax_amount AS nettotal, IF (sales_flat_order.base_tax_amount>0,’tax’,’untaxed’) AS taxstatus, sales_flat_order.base_tax_amount AS taxamount, IF (sales_flat_order_payment.method=’sagepayform’,IF (sagepaysuite_transaction.card_type=’AMEX’,’Amex’,’SagePay’),sales_flat_order_payment.method) AS paymenttype FROM sales_flat_order JOIN sales_flat_order_payment ON sales_flat_order_payment.parent_id=sales_flat_order.entity_id LEFT OUTER JOIN sagepaysuite_transaction ON sagepaysuite_transaction.order_id=sales_flat_order.entity_id WHERE sales_flat_order.state=’complete’ AND sales_flat_order.created_at>=’2012-11-01′ AND sales_flat_order.created_at

Magento: Get customers ordered by order value

Want to know which of your Magento e-commerce shopping cart customers have ordered the most this year? Well, I’ve written the following SQL query to help: SELECT SUM(sales_flat_order.base_total_invoiced) AS totalvalue,sales_flat_order.customer_firstname,sales_flat_order.customer_lastname,sales_flat_order.customer_email,sales_flat_order_address.street,sales_flat_order_address.city,sales_flat_order_address.region,sales_flat_order_address.postcode FROM sales_flat_order,sales_flat_order_address WHERE sales_flat_order.state=’complete’ AND sales_flat_order.created_at>’2012-01-01′ AND sales_flat_order_address.entity_id=sales_flat_order.billing_address_id GROUP BY sales_flat_order.customer_email ORDER BY totalvalue DESC