Automattic\WooCommerce\Blocks\BlockTypes
CheckoutExpressPaymentBlock::update_other_page_with_express_payment_attrs
Update the express payment attributes in the other page (Cart or Checkout).
Method of the class: CheckoutExpressPaymentBlock{}
No Hooks.
Returns
null. Nothing (null).
Usage
// private - for code of main (parent) class only $result = $this->update_other_page_with_express_payment_attrs( $cart_or_checkout, $updated_attrs );
- $cart_or_checkout(string) (required)
- The page to update.
- $updated_attrs(array) (required)
- The updated attributes.
CheckoutExpressPaymentBlock::update_other_page_with_express_payment_attrs() CheckoutExpressPaymentBlock::update other page with express payment attrs code WC 10.4.3
private function update_other_page_with_express_payment_attrs( $cart_or_checkout, $updated_attrs ) {
$page_id = 'cart' === $cart_or_checkout ? wc_get_page_id( 'cart' ) : wc_get_page_id( 'checkout' );
if ( -1 === $page_id ) {
return;
}
$post = get_post( $page_id );
if ( empty( $post->post_content ) ) {
return;
}
$blocks = parse_blocks( $post->post_content );
CartCheckoutUtils::update_blocks_with_new_attrs( $blocks, $cart_or_checkout, $updated_attrs );
$updated_content = serialize_blocks( $blocks );
remove_action( 'save_post', array( $this, 'sync_express_payment_attrs' ), 10, 2 );
wp_update_post(
array(
'ID' => $page_id,
'post_content' => $updated_content,
),
false,
false
);
add_action( 'save_post', array( $this, 'sync_express_payment_attrs' ), 10, 2 );
}