PHP 8.0.30
Preview: CheckoutExpressPaymentBlock.php Size: 4.13 KB
/home/certprox/zang.certproxywizard.com/wp/wp-content/plugins/woocommerce/src/Blocks/BlockTypes/CheckoutExpressPaymentBlock.php

<?php
namespace Automattic\WooCommerce\Blocks\BlockTypes;

use Automattic\WooCommerce\Blocks\Utils\CartCheckoutUtils;
use Exception;

/**
 * CheckoutExpressPaymentBlock class.
 */
class CheckoutExpressPaymentBlock extends AbstractInnerBlock {
	/**
	 * Block name.
	 *
	 * @var string
	 */
	protected $block_name = 'checkout-express-payment-block';

	/**
	 * Default styles for the express payment buttons
	 *
	 * @var boolean
	 */
	protected $default_styles = null;

	/**
	 * Current styles for the express payment buttons
	 *
	 * @var boolean
	 */
	protected $current_styles = null;

	/**
	 * Initialise the block
	 */
	protected function initialize() {
		parent::initialize();

		$this->default_styles = array(
			'showButtonStyles'   => false,
			'buttonHeight'       => '48',
			'buttonBorderRadius' => '4',
		);

		add_action( 'save_post', array( $this, 'sync_express_payment_attrs' ), 10, 2 );
	}

	/**
	 * Synchorize the express payment attributes between the Cart and Checkout pages.
	 *
	 * @param int     $post_id Post ID.
	 * @param WP_Post $post Post object.
	 */
	public function sync_express_payment_attrs( $post_id, $post ) {
		if ( wc_get_page_id( 'cart' ) === $post_id ) {
			$cart_or_checkout = 'cart';
		} elseif ( wc_get_page_id( 'checkout' ) === $post_id ) {
			$cart_or_checkout = 'checkout';
		} else {
			return;
		}

		// This is not a proper save action, maybe an autosave, so don't continue.
		if ( empty( $post->post_status ) || 'inherit' === $post->post_status ) {
			return;
		}

		$block_name    = 'woocommerce/' . $cart_or_checkout;
		$page_id       = 'woocommerce_' . $cart_or_checkout . '_page_id';
		$template_name = 'page-' . $cart_or_checkout;

		// Check if we are editing the cart/checkout page and that it contains a Cart/Checkout block.
		// Cast to string for Cart/Checkout page ID comparison because get_option can return it as a string, so better to compare both values as strings.
		if ( ! empty( $post->post_type ) && 'wp_template' !== $post->post_type && ( false === has_block( $block_name, $post ) || (string) get_option( $page_id ) !== (string) $post_id ) ) {
			return;
		}

		// Check if we are editing the Cart/Checkout template and that it contains a Cart/Checkout block.
		if ( ( ! empty( $post->post_type ) && ! empty( $post->post_name ) && $template_name !== $post->post_name && 'wp_template' === $post->post_type ) || false === has_block( $block_name, $post ) ) {
			return;
		}

		if ( empty( $post->post_content ) ) {
			return;
		}

		try {
			// Parse the post content to get the express payment attributes of the current page.
			$attrs = CartCheckoutUtils::find_express_checkout_attributes( $post->post_content, $cart_or_checkout );

			if ( ! is_array( $attrs ) ) {
				return;
			}
			$updated_attrs = array_merge( $this->default_styles, $attrs );

			// We need to sync the attributes between the Cart and Checkout pages.
			$other_page = 'cart' === $cart_or_checkout ? 'checkout' : 'cart';

			$this->update_other_page_with_express_payment_attrs( $other_page, $updated_attrs );
		} catch ( Exception $e ) {
			wc_get_logger()->log( 'error', 'Error updating express payment attributes: ' . $e->getMessage() );
		}
	}

	/**
	 * Update the express payment attributes in the other page (Cart or Checkout).
	 *
	 * @param string $cart_or_checkout The page to update.
	 * @param array  $updated_attrs     The updated attributes.
	 */
	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 );
	}
}

Directory Contents

Dirs: 5 × Files: 139

Name Size Perms Modified Actions
Accordion DIR
- drwxr-xr-x 2026-03-30 10:22:44
Edit Download
- drwxr-xr-x 2026-03-30 10:22:44
Edit Download
- drwxr-xr-x 2026-03-30 10:22:45
Edit Download
- drwxr-xr-x 2026-03-30 10:22:45
Edit Download
Reviews DIR
- drwxr-xr-x 2026-03-30 10:22:45
Edit Download
15.60 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.85 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.74 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
22.10 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
226 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
9.28 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.99 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.29 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
910 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.50 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
2.70 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
11.93 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
288 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
251 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
276 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
507 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
235 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
248 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.55 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
2.67 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
289 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
282 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
267 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
279 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
282 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
282 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
273 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
276 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
238 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.48 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
1.70 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
2.36 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
26.11 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1003 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
296 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
275 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
287 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
4.13 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
250 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
260 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
2.74 KB lrw-r--r-- 2026-03-30 10:22:44
Edit Download
298 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
301 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
294 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
279 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
294 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
294 B lrw-r--r-- 2026-03-30 10:22:44
Edit Download
285 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
288 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
253 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
272 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
278 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
275 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
278 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
247 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
250 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.03 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
12.62 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.58 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
7.97 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
8.58 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.23 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
235 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.79 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
775 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.72 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
13.88 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.33 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
238 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.45 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
376 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.89 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
34.92 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.24 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.97 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
6.51 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.63 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.51 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
12.61 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.02 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.50 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.28 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.55 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.36 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
705 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
6.17 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.25 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
783 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.08 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
444 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
12.41 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
12.75 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
733 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.48 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
16.03 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.51 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
12.74 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.65 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
4.69 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.45 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
6.97 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.36 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
7.10 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.79 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
9.93 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
6.62 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
18.47 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
6.49 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
7.95 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
4.18 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
8.76 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.55 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1009 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
448 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
761 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
4.72 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
27.80 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
6.09 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.46 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.76 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.77 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.69 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.05 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.49 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
3.31 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.68 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.96 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
7.34 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
2.23 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.79 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
619 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
424 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
704 B lrw-r--r-- 2026-03-30 10:22:45
Edit Download
5.24 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.31 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.30 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
6.60 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.34 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download
1.70 KB lrw-r--r-- 2026-03-30 10:22:45
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).