Merge pull request #25137 from woocommerce/fix/24936
Only update the customer IP address when order gets created from admin
This commit is contained in:
commit
0bec8443f4
|
@ -2059,4 +2059,15 @@ class WC_Order extends WC_Abstract_Order {
|
||||||
|
|
||||||
return apply_filters( 'woocommerce_get_order_item_totals', $total_rows, $this, $tax_display );
|
return apply_filters( 'woocommerce_get_order_item_totals', $total_rows, $this, $tax_display );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if order has been created via admin, checkout, or in another way.
|
||||||
|
*
|
||||||
|
* @since 4.0.0
|
||||||
|
* @param string $modus Way of creating the order to test for.
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function is_created_via( $modus ) {
|
||||||
|
return apply_filters( 'woocommerce_order_is_created_via', $modus === $this->get_created_via(), $this, $modus );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -236,8 +236,9 @@ class WC_Shortcode_Checkout {
|
||||||
// Empty awaiting payment session.
|
// Empty awaiting payment session.
|
||||||
unset( WC()->session->order_awaiting_payment );
|
unset( WC()->session->order_awaiting_payment );
|
||||||
|
|
||||||
// In case order is created from admin, but paid by the actual customer, store the ip address of the payer.
|
// In case order is created from admin, but paid by the actual customer, store the ip address of the payer
|
||||||
if ( $order ) {
|
// when they visit the payment confirmation page.
|
||||||
|
if ( $order && $order->is_created_via( 'admin' ) ) {
|
||||||
$order->set_customer_ip_address( WC_Geolocation::get_ip_address() );
|
$order->set_customer_ip_address( WC_Geolocation::get_ip_address() );
|
||||||
$order->save();
|
$order->save();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue