array_search returns false when not found. This causes the first CSS class in the $classes array to be removed ( twice ).  This was inadvertently removing some of the custom classes defined in the Menu Builder of WordPress.
returning customer login. closes #3903
need $this->id check in the update_status function to prevent an empty WC_Order object from calling it. If $this->id doesn't exists, update_status will insert another row in wp_posts because line 1226: wp_update_post(array('ID' => $this->id)) triggers it.
First found should be used.

@coenjacobs this should go in .15 - the first matching variation should
always be used IMO, not the last.
When handling variations, priority from top to bottom - disabled variations still taking into consideration allow you to exclude certain combinations when using 'all' for variations with lower priority. Message displayed if a variation is unavailable.

@coenjacobs please review
Merge pull request #3904 from bernardpeh/woocommerce-master

update_status function in class-wc-order.php will cause undesirable post insertion if we don't check if the order id exist
Merge pull request #3890 from tivnet/master

class-wc-checkout.php : PHPDoc fixes
Merge pull request #3896 from pronamic/fix/navMenuItems

array_search returns false when not found.