{"id":18894696,"date":"2026-04-29T19:55:39","date_gmt":"2026-04-29T19:55:39","guid":{"rendered":"https:\/\/wordpress.org\/support\/?post_type=topic&#038;p=18894696"},"modified":"2026-04-29T21:11:59","modified_gmt":"2026-04-29T21:11:59","slug":"error-getaddress-on-null","status":"publish","type":"topic","link":"https:\/\/wordpress.org\/support\/topic\/error-getaddress-on-null\/","title":{"rendered":"Error getAddress() on null"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hi Payment Plugins team,<br \/>we\u2019re seeing an intermittent fatal error during Apple Pay \/ express checkout updates:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;code class=&#8221;&#8221;&gt;Critical Uncaught Error: Call to a member function getAddress() on null<\/code><br \/>in&nbsp;<code>src\/AjaxFrontendHandler.php<\/code>&nbsp;(around line 84), inside&nbsp;&lt;code class=&#8221;&#8221;&gt;AjaxFrontendHandler::get_update_data()<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From debugging, the issue is that code in the shipping branch assumes&nbsp;&lt;code class=&#8221;&#8221;&gt;PurchaseUnit::getShipping()<\/code>&nbsp;is always present and calls&nbsp;&lt;code class=&#8221;&#8221;&gt;-&gt;getAddress()<\/code>&nbsp;\/&nbsp;&lt;code class=&#8221;&#8221;&gt;-&gt;getSelectedOption()<\/code>&nbsp;directly. In some valid PayPal order states (early\/update calls),&nbsp;<code>purchase_unit.shipping<\/code>&nbsp;is not set yet, so this becomes null and crashes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Could you add a null guard before using shipping (e.g.&nbsp;&lt;code class=&#8221;&#8221;&gt;$shipping = $purchase_unit-&gt;getShipping(); if ( $shipping ) { &#8230; }<\/code>) so missing shipping blocks are handled safely?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Environment\/context:<\/p>\n\n\n\n<ul>\n<li>WooCommerce + CheckoutWC<\/li>\n\n\n\n<li>Payment method:\u00a0<code>ppcp_applepay<\/code><\/li>\n\n\n\n<li>Hook path includes\u00a0<code>woocommerce_checkout_update_order_review<\/code><\/li>\n\n\n\n<li>Plugin version: 2.0.14<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Thanks!<\/p>\n","protected":false},"template":"","class_list":["post-18894696","topic","type-topic","status-publish","hentry","topic-tag-apple-pay"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/18894696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":1,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/18894696\/revisions"}],"predecessor-version":[{"id":18894697,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/18894696\/revisions\/18894697"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=18894696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}