Skip to content

Commit e1d1c21

Browse files
WooCommerce: check for new order methods before using, as < 3.0 does not have these. #426
1 parent 20c6c2c commit e1d1c21

File tree

2 files changed

+18
-8
lines changed

2 files changed

+18
-8
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Changelog
99

1010
**Improvements**
1111

12-
- Compatibility with WooCommerce 3.0, thanks Liam McArthur!
12+
- Use updated order methods in WooCommerce 3.0, thanks to Liam McArthur.
1313
- Updated JavaScript dependencies.
1414

1515

integrations/woocommerce/class-woocommerce.php

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,23 @@ public function subscribe_from_woocommerce_checkout( $order_id ) {
8686

8787
$order = wc_get_order( $order_id );
8888

89-
$data = array(
90-
'EMAIL' => $order->get_billing_email(),
91-
'NAME' => "{$order->get_billing_first_name()} {$order->get_billing_last_name()}",
92-
'FNAME' => $order->get_billing_first_name(),
93-
'LNAME' => $order->get_billing_last_name(),
94-
);
95-
89+
if( method_exists( $order, 'get_billing_email' ) ) {
90+
$data = array(
91+
'EMAIL' => $order->get_billing_email(),
92+
'NAME' => "{$order->get_billing_first_name()} {$order->get_billing_last_name()}",
93+
'FNAME' => $order->get_billing_first_name(),
94+
'LNAME' => $order->get_billing_last_name(),
95+
);
96+
} else {
97+
// NOTE: for compatibility with WooCommerce < 3.0
98+
$data = array(
99+
'EMAIL' => $order->billing_email,
100+
'NAME' => "{$order->billing_first_name} {$order->billing_last_name}",
101+
'FNAME' => $order->billing_first_name,
102+
'LNAME' => $order->billing_last_name,
103+
);
104+
}
105+
96106
// TODO: add billing address fields, maybe by finding MailChimp field of type "address"?
97107
98108
return $this->subscribe( $data, $order_id );

0 commit comments

Comments
 (0)