Changelog: Code: 4.3.6 2013-12-03 13:40:14 +0400 Core Changes New Module: Self-Service allows to sell "credits" then allow users to spent these credits in your store New Module: SoftSale to generate software keys and handle online activations (optional "call-home") ****************************************************************** Improved admin dashboard widgets Ability to use Signup Form without Product Brick (just user record without any subscription will be added) Closes #1344 : duplicated plugins were listed wrongly in integration protection section Return correct http response code in mantintance mode Fixed bug: Unable to save agreement if agreement text includes encoded entities. Fixed bug: Recurring IPN messages were not handled properly for invoices which were imported into aMember from different systems aMember will save generated password for new users for 6 hours and password will be displayed on "thanks" page PDF Invoice: additional placeholder which can be used in file name of invoice (%payment.date%, %user.name_f%, %user.name_l%) New User Filter Condition: Spent Amount Bug Fixed: detail link for refunds in Sales Admin Widget did not work Make "products" column in content grids exapandable so admin can check access permission without click edit icon (backend) Payments Grid: ability to export first and last name in seprate columns, ability to export date without time (backend) Ability to display active user subscriptions in user grid (backend) CSRF protection for user profile form (frontend) Cart: Added "Display All" option to category menu in shopping cart (there was no way to return back to default products view after one category was selected) Fixed bug: When user press enter in Helpdesk Faq Search textbox, he was redirected tp ugly search result page. Fixed bug: User's session was not cleared if user was deleted from aMember CP. Bug fixed : redirect to first url did not work Closes #1321 - Custom Access Denied redirect for folders, files, pages Added ability to filter by more than one product in aMember CP -> Payments report Added coupon field to shopping cart checkout Added "Remove Label" option for Product Brick Forms Editor: ability to reset labels for bricks to default, live indication of custom labels Payments admin widget: visual distinguish for payments from existing users and payments from new users Fixed report "Payments by product" categories breakdown Implements #1221 - Discrepancies between Display fields options and Export fields options in Browse User Grid Closes #1289 - 'No, cancel' button does not work if try to delete invoice from user's payments page Single Login Session: Bug Fixed: in case right after login user was redirected to not aMember page it is possible to login from other mashine before first user open some aMember driven page Improve visualization of rebuild db (backend) Closes #1310 - does not show action related stuff in grid in case of this action is not available for currently logged in user according his permissions Include Payments widget to admin dashboard by default, change default periods for Sales widget to 'today' and 'this week' Improve admin widgets, made it more userfrendly on narrow screen Made admin dashboard more responsive Fixed warning in admin user invoices view (near the _Refund_ link) Fixed bug: In some situations users could be double-billed if there was an error in mail template. Refs #1095 - Display Next Rebill Date for Recurring Subscription on user side Do not display link to download pdf invoice for refunded payments on user side Bug Fixed: in active subscription section expired subscription was also shown. (we need to move active access condition from JOIN to WHERE to correctly limit records) Improve invoice layout in member area, list invoices in reverse chronological order so most recent one was at beginning Include Additional User Fields (type sql) to standard placeholders set for email templates Bug Fixed: in case of multiple product brick added in one time in form editor all magicaselect was defined without respect to orig configuration (form is cloned and new instance lost data so we need to use dom attribute to transfer orig configuration to new instance) Display progress bar during bulk email send PDF Invoice: Ability to use user specific placeholders in footer text PDF invoice: add column with number of item %user.unsubscribe_link% email placeholder added Display 'Product Categories' column in product listing only in case at least one product assigned to some category (backend) Improve style of Brick Editor Bug Fixed: ability to customize labels for Next and Back on signup form works now, also it is possible to customize title for each signup form step Implement #899 - ability to switch Visual HTMl editor off completly Ability to assign/remove group to users in bulk Implements #1318 - ability to remove email from queue (super admin permission required) Closes #1341 - ckeditor preserve all html tags and attributes, ability to set up code of all page with <html></html> Implements #995 - Multi-line rows for pdf table to handle situation with too long product title New Report: Count of Product Purchase by date Text invoice representation (included to email) correctly handle long product names i18n: Respect Locale Settings during label display in report for quant Month Fixed Bug: Problem in encypriton/decription method. Some data in CC info wasn't properly encrypted/decrypted. Fixed bug : not sorted output for saved reports as widgets on dashboard Fixed bug : coupon validation did not work right for assigned coupons Fixed bug : newsletters plugin config was saved without prefix in some cases. Video: ability to use custom template and use meta tags (title/keywords/description) Closes #1322 - filter added between dates should be inclusive Fixed Bug: Multy-line fields were imported incorrectly in grids Refs #1311: Newsletter: ability to hide some newslatter threads in member area Helpdesk: respect user language preference for email notifications Shopping Cart Ability to limit cart catalog by some subtree of product categories, only categories from this subtree will be shown, only products from this categories is show. By default use root Hide column tax and discount for cart if there is not text and discount Visual highlight cart block, visual feedback for user when item added to cart. Display item status (Already in cart|You have 4 items in your cart) Ability to reuse exiting images for other products Allow to select paysystems for cart page Affiliate Program Aff stats display display hyperlinks to details only in case details exists improve visualiazation of aff stat (commisson/clicks/leads) in admin interface (backend) ability to void commission from edit user page improve tier visualisation in grid with commissions (backend) track used commission rules and display it for admin reference (backend) notice for admin if affiliate<->user relation is expired in edit user page in affiliate section (backend) redirect referrers to custom url ability to test aff commission rules for any billing plan, ablity to define qty in test invoice Fixed bug: Logged in affiliate wasn't properly redirected to affiliate's area from signup form in some situations. add invoice column to commission listing (backend) improve aff stat visualization in user profile (backend) Bug Fixed: void was not included to payout in case of it was issued after commision was already paid Ability to void commission added add hyperlinks to affiliate profile in payout details grid (backend) Visual distinguish paid and not paid payout details in admin interface Fixed bug : aff link did not work for affiliates with space in login Bug Fixed: affiliate banners without category was not listed on affiliate page Implements #1314 - automatic email notification for affiliate when their commission is paid out Allow use of html editor to edit Intro Text on Affiliate Info Page Helpdesk Use dropdown menu item to show helpdesk and FAQ Do not show column 'owner' on tickets grid (backend) Display link to faq item in admin interface Allow use of html editor to edit Intro Text on Helpdesk Page Implements #1330 - Remove Attachments (actual files) from support tickets if ticket is removed Payment Plugins New payment plugin: eNETs through checkout.com 4csonline payment plugin added NAB Transact payment plugin CoinBase plugin added 1SC : first recurring payment was not added properly Changed clickbank plugin thanks url. Clickbank doesn't allow to use word "clickbank" in url anymore. Old urls will work as well though Sliiing payment plugin added Paypal : new option added - "Recognize pending echeck payments as completed" Sagepay : recurring fixed Refs #1311: Add new cc plugin payment - cybersource Add new payment plugin: checkout (www.checkout.fi) Eway Rapid : recurring fixed JVZoo payment plugin added CCAvenue payment plugin added Implemented ability to refund paypal-pro payments. Implemented ability to refund paypal-express payments. Fixed bug: Payflow PRO plugin was unable to rebill users imported from amember v3. Added additional currency for PayPal (TRY, RUB) Wordpress Integration Added WP Courseware support Fixed bug: incorrect 404 errors when wordpress network enabled in Wordpress plugin configuration Improved compatibility between aMember layout and wordpress themes Integration Plugins Appointmind integration plugin added Fixed bug: Invision plugin didn't update stats correctly on user insert Zendesk integration plugin added Add new protect plugin: prestashop Add new protect plugin: zencart AdultVideoScript integration plugin added Bug Fixed: smf plugin produce unexpected output on user update (debug code) Infusion-soft plugin, enable cache by default. Extension Plugins Add new misc plugin: shipwire (http://www.shipwire.com) Notification: force utf-8 encoding for MySQL columns Notification plugin: separate style for notifications Refs #1366 - notification plugin: ability to setup notification for user group Login via IP plugin: added support of IP ranges User Note Plugin: adds additional tab to user profile where admin can leave some comments regarding this user (backend) gift-vouchers: fix labels for email placeholder titles AffLevels: display fully qualified group name Add new misc plugin: AffCoupons Subscription limit : show limit in the products grid Added new newsletter plugin: SuperWebMailer (http://www.superwebmailer.de/) block-pending-invoice plugin - display list of user pending invoice with link to pay it or disregard Fixed bug: Incorrect Aweber plugin settings broke amember CP -> Setup completly. Mailchimp : fixed to resubscribe user after email address is changed New storage plugin: selectel.ru Notification Plugin: Ability to track clicks on link in notification Bug Fixed: avatar/donation plugins bricks fixed Fixed Bug: Infusion soft plugin problem on daily cron API Changes Bug Fixed: data table was not cleared when incomplete invoice removed API: new event affPayout - called after payouts is calculated API: move Am_Blocks::addDefaultBlocks call to Di so give chance to remove standard blocks for plugins API: new event INVOICE_SIGNUP - may be used to attach some data from vars to invoice Cron: provide info about time of execution for cron event handlers Am_Grid_Field_Expandable: respect UTF-8 encoding 4.3.5 2013-10-05 18:05:00 +0400 Minor bugfixes: rebuild database routines optimized 4.3.4 2013-10-04 12:40:14 +0400 Bug Fixed: user_status table was sync incorrectly for expired products in some cases (delete access/delete user) Activecampaign plugin fixed Fixed bug: Unable to import user and invoice external_id at the same time. Field names were the same. Fixed bug: Unable to import recurring invoices. All invoices were created as not recurring. Added user's external ID for import Added ability to import invoice_external_id, useful for import of existing paypal subscribers Respect Product Category Hierarchy (move from develop branch) Fixed bug: wordpress plugin set default value for before/after select Paysafecard payment plugin (move from develop branch) Closes #1262 - removed "free_without_login" access permission option for folders Implements #1294 - javascript file for custom js code which is not overwritten during upgrades 4.3.3 2013-10-01 16:38:00 +0400 New Brick: ManualAccess (allow to add access to some products in background for new user signup - before payment!) Fixed bug: unable to save product when clickbank plugin is enabled. (Unnecessary space before <?php tag) Fixed inet-cash plugin Fixed notice in amember CP when aweber plugin is enabled. Affiliate: display user payouts on user edit page, ability to check commissions included in choosen payout (backend) Wordpress plugin: fixed bug, incorrect protection of whole blog in some situations. Affiliate: track datetime of affiliate assign, take it into account when use 'User-Affiliate Relation Lifetime' OfficeAutoPilot ( SendPepper ) newsletter plugin added Bug Fixed: need to use placeholder instead of literal value for db prefix (upgrade has been broken in 4.3.0+ if database prefix other than "am_" has been used for aMember) Payflow plugin fixed to use new API Korean locale fixed API: move brick specific processing to Brick class, use Events to job 4.3.2 2013-09-27 18:27:00 +0400 Implements #1288 - upgrade CKEDITOR to latest version Bug Fixed: (affects 4.3.0+) avoid infinite loop if database had deleted users Bug Fixed: Import does not go further from second step Display cancel date for invoice in admin interface Removed fieldset for coupon brick (coupon converted to a normal single field) Drupal : single login for subdomains fixed New Feature: abilitty to display products list in popup in case of checkbox input type is used (can be enabled in the brick configuration) Single-login-sesssion: Added notification to admin on simultaneous login Added filter by payment system to amember CP -> Payments report. Fixed several problems with payout when using wordpress theme integration. Improved Demo Data Generation: 20% probability of cancel on each payment for recurring invoices Closes #1297 - Account sharing Notification should send Email only once (per 20 minutes) for multiple login attempts Added Link to details from affiliate commission amount in sales widget on dashboard 4.3.1 2013-09-19 15:27:00 +0400 Fixed 4.3.0 bug: unable to submit signup form in php < 5.3.0 Fixed 4.3.0 bug: Error in wordpress theme integration. Several Warnings on redirects when use wordpress theme is enabled. Fixed 4.3.0 bug: Incorrect shopping cart layout when use wordpress theme. Improve "Rebills by Date" page Added filter to commissions grid on user page (backend) Group Affiliate related tabs to one section in edit user screen in admin interface, add tab with commissions related to this user Display related affiliate commissions in Invoice details on user page in admin interface Ability to send email with payment link for any pending invoice in admin interface 4.3.0 2013-09-18 14:55:45 +0400 Implements #384 - responsive design for default theme, works fine on mobile devices Implements #470 - option to play a non-member video if not logged in, and a not-proper level video if logged in but of wrong level Implements #1180 - Redirect after login -- If only one protected URL, go directly to the URL. Otherwise go to membership page Implements #864 - Report of retention rates Ajax validation of username/email/coupon Implements #1014 - New setting for redirect after logout : redirect user to the page where logout link was clicked Fixed bug: Cancel links didn't work for paypal-express plugin. Implements #1030 - Ability to remove e-mails from history on the "e-mail users" page (for Super Admin Only) Display info about users with same registration IP on edit user page in admin interface Refs #1120 - Last User Logins Widget Display next rebill date for invoice event we can not change it (it is important information for admins) Subusers: send zero-day autoresponders to subusers Added ability to exclude refunded payments from payment list at Report -> Payments Utilize invoice_public_id field instead of JOIN with invoice table Fixed bug: Base URL on thanks page were wrong in some situations. Calculate totals for refunds grid Calculate Totals in Payment Grid in case of Filter is applied Translations from database will be searched by Locale first and then by language code. (in order to support zh_Hans and zh_Hant locales) Added support of zh_Hans and zh_hant locales to Zend_Locale Added ability to resend postback for paypal pro plugin. Fixed bug: Rebuild DB sometimes generate "Incorrect response received" error. Notification Plugin: ability to preview notification from admin interface Notification Plugin: ability to use custom html to build messasge , ability to limit number of display per user Implements #608 - Metadata for saved forms New Feature: metatags support for Pages Subusers module: add resseler's placeholder to subuser email template Implements #1287 - Ability to Import Coupon codes from CSV list Implements #1220 - Enhancement of security permisions in Admin Settings Closes #1282 - respect product sort order in report display Underlaying ZendFramework updated to 1.11.14 Implements #1245 - List of future rebillings, Improve Invoice filter (ability to search by tm_added, tm_started, tm_cancelled, rebill_date) Implements #954 - Support for Range- HTTP headers in downloads (download will not start again if interrupted and started again) Refs #1220 - added separate admin permission for message translations Improve Options Editor: ability to import options from CSV list Implements #1176 - Allow to completely customize 404/Not Found error page (use built-in amember pages) New Feature: allow to choose require behaviour of Product brick * Default - Make this Brick Required Only in Case There is not any Required Brick on Page Above It * Always - Force User to Choose Some Product from this Brick * Never - Products in this Brick is Optional (Not Required) * Alternate - User can Choose Product in any Brick of Such Type on Page but he Should Choose at least One Product Implements #959 - in forms - fields only displayed if membership is active Implements #1042 - Ability to select certain BILLING PLANS to appear on a signup form Interface to assign affiliate to coupon batch or to exact coupon Abillity to preview content pages from admin interface New Feature: ability to preview expire and autoresponder from admin interface API: ability to use custom transport instead of Default for send emails New Feature: ability to completely customize index page from admin interface (use one of pages for it) Subusers: Added ablility to import subusers from a CSV file Implements #1265 - added product title placeholder to expire emails Easy Ability to Set Lifetime Date from admin Interface - just button Lifetime in Datepicker OTO: avoid to add additional html tags in case of offer is already conplete html page Bug fixed: datepicker was not initialized in case of element added to DOM later (as result of ajax request) Add integration with LimeLight CRM as payment plugin Added ability to send autoresponder and expiration email to admin, other emails, bcc Gift-vouchers misc plugin: fix generate random code Subusers: ability to use different profile form for subusers Helpdesk: user can not reply in closed ticket Phpfox plugin updated to work with 3.6.0 InfusionSoft plugin: catch errors in init Added ability to sort helpdesk categories Bug fixed: notification about cancelled invoice has been sent to user instead of admin New feature: short urls for signup pages Ability to change header logo for default theme from admin interface Directory: use installation specific obfuscate method to hide real user id to do not disclosure real user id Helpdesk: new configuration option - ability to make FAQ section public Ability to add gravatar images to user grid in admin interface Implements #1271 - Show Gravatar Images on HelpDesk Tickets Implements #1269 - GST tax should be calculated after total and without price changing Implements #1255 - Improve FAQ in Helpdesk Refs #1255 - helpdesk: ability to set up FAQ items without categories, ability to edit existing categories Implements #1163 - IP Blocking convenience link Implements #1093 - when using coupon which is not applicalable to current purchase - post an error Implements #974 - Invoicing (compose invoice from admin interface and send payment link to user email) Implements #800 - Ability to make any custom field hidden on signup form and set default value Agreement Brick: configuration option to not dispaly agreement text on form, display only tick box instead Bug fixed : browse link did not work for resend email action if entered body is too long API: new event Am_Event::SAVED_FORM_GET_BRICKS - ability to change list of bricks depends on current enviroment, may be usefull for many customizations Implements #1110 - coupon usage - only if active/expired for product X Implements #1266 - Add refund status to admin payments page/export Implements #789 - Email History Per User Added Japanese language Fixed bug: reCaptcha was not loaded correctly on non-Apache servers when use https. Bug fixed: coupon was applied to any product in case if coupon configuration has choosen empty category as Product Restriction option Fixed bug : Send copy of all admin notifications did not allow to use list of emails Misc Plugin: Login Monitor - send email message to admin every time user login to aMember Coupons usage statistic fixed to show transactions(payments + 100% discounted invoices) New option for newsletters plugins added : Unsubscribe customer from selected newsletter threads after signup or payment Added lost password form protection by IP address. If there are too many requests from the same IP, form will be blocked for 3 hours. Activecampaign plugin reworked New option added : recaptcha theme for login page Implements #885 - affiliate ID - use username/do not reveal id of user in database Fixed bug: Unable to configure sales widget on Dashboard. API: GET_LOGIN_REGEX and GET_STRONG_PASSWORD_REGEX events introduced, ability to alter hardcoded regexp from plugin or site.php Fixed bug: Zero commissions should not be added. Fixed bug: Save button in member's area -> Affiliate Info -> Payout info wasn't translated properly. Implements #1227 - Change BLOB value in am_store to MEDIUMBLOB, there is no any issue with performance Implements #968 - does not allow to paste to confirmation email/password field Implements #1233 - Reflect refunds in last X payments widget + separate widget With refunds Helpdesk: Ability to change category of existing ticket in admin interface API: ability to customize profile page from hooks (member/profile/top and member/profile/bottom blocks) Single-login-session plugin implemented: Implements #231 - Single Login Session: Several users will not be able to login simultaneously from different computers with same credentials. ability to allow simultaneous login, use plugin only to track online status Implements #1120 - customer login indicator (Online/Never/Last Login DateTime) (single-login-session plugin) API: new event introduced Am_Event::AUTH_CHECK_USER can be used to prevent user login from plugin eg. it can be used to not allow concurent sign in for same user from different hosts Subusers module: fix placeholders Affiliate Program Track affiliate source and display it for admin reference enum('cookie', 'ip', 'admin-ID', 'coupon-CODE') Ability to filter affiliate stats by date range Calculate totals in affiliate commission stats API: New hook GET_AFF_REDIRECT_LINK added to change affiliate redirect link Added Webmoney as affiliate payout method Ability to set up email notification for user who got commission but did not choose payout method yet (sent only once for user) Render notice regarding empty affiliate payout methods on all affiliate pages as well Added ability to remove generated payout in case it was not paid yet Implements #956 - Ability to assign coupon code to specific affiliate Implements #1209 - ability to add affiliate links into outgoing e-mails Affiliate: ability to change affiliate for user or complete unassign it from admin interface Implements #1077 - ability to organize banners by category, ability to add HTML block to the top of the page where admin can provide instructions for affiliates Shopping Cart: ability to manage layout from admin interface separate image size for preview, cart and full description image image of product in cart display either short description or full description, not both together user Frendly URLs for products - /product/product+alias Integration Plugins: InfusionSoft: Fixed bug: plugin's cron process failed if contact was removed from InfusionCRM. InfusionSoft: Bug fixed : paypal ipn did not work with enabled infusion-soft Added new protect plugin: typo3 Bug fixed : drupal plugin could not parse config for version 6 Wordpress Integration: Closes #1259 Wordpress plugin: Implemented Bulk protection for custom post types Closes #1285 Wordpress plugin: Fixed bug: category protection didn't work. Fixed bug: Wordpress protected content wasn't available for administrators. Fixed bug: Wordpress plugin. Incompatibility with NextGen plugin fixed. Fixed bug: Infusion plugin didn't use cache in some situations. Wordpress plugin: remove get_called_class defenition. Function is incorrect and can lead to infinity loop Wordpress plugin: fixed errors on edit tag screen. Payment Plugins: Implemented "Accept Direct Payments" for epoch payment plugin. Moneybookers : cancellations support added, status changed to beta PayPalPro: Fixed bug: SuccessWithWarning response wasn't properly handled Plimus : can handle direct payments now PayOne payment plugin: some bugs fixed Wepay : new option - fee payer TargetPay-iDeal cc payment plugin: new cbank format; fixed directdebit check URL Added validation mode to Zombaio plugin. Zombaio doesn't allow to install zscript without validation now. Fixed paypal cancellation links. Madmimi plugin fixed Implemented update CC info for paypal pro plugin. Xcart plugin fixed Payforit cc plugin: add option for use iframe at aMember site Payflow-link plugin fixed : handle browser redirect to IPN URL and redirect to default thanks page Payment Express (DPS) payment plugin: typo fixed DPS Payment Express cc payment plugin: add possiblity to change plugin button name at admin area 1SC multipurchase fixed(in front of Amember) Fixed bug: payFlow Link plugin didn't activate completed payment. Bitpay payment plugin: added default option of speed/risk and http-protocol for returl-url at plugin settings Bitpay payment plugin: add speed/risk options of transaction A6iT cc payment plugin: fix validate at rebilling 1shoppingcart: correctly handle start recurring in case of free trial Bug fixed : 2CO - did not count first period for recurring products if product is not lifetime Fixed bug: Free trials were not handled correctly to 1SC plugin. Fixed bug: Unable to purchase multiple products via fastspring, when it used before amember.