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

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

use Automattic\WooCommerce\Admin\Features\Features;

/**
 * MiniCartFooterBlock class.
 */
class MiniCartFooterBlock extends AbstractInnerBlock {
	/**
	 * Block name.
	 *
	 * @var string
	 */
	protected $block_name = 'mini-cart-footer-block';

	/**
	 * Data passed through from server to client for block.
	 *
	 * @param array $attributes  Any attributes that currently are available from the block.
	 *                           Note, this will be empty in the editor context when the block is
	 *                           not in the post content on editor load.
	 */
	protected function enqueue_data( array $attributes = array() ) {
		parent::enqueue_data( $attributes );
		$description = $this->get_totals_item_description();
		if ( ! empty( $description ) ) {
			$this->asset_data_registry->add( 'miniCartFooterDescription', $description );
		}
	}

	/**
	 * Render experimental iAPI powered Mini-Cart Footer block.
	 *
	 * @param array    $attributes Block attributes.
	 * @param string   $content    Block content.
	 * @param WP_Block $block      Block instance.
	 * @return string Rendered block type output.
	 */
	protected function render_experimental_iapi_mini_cart_footer( $attributes, $content, $block ) {
		ob_start();

		$cart                             = $this->get_cart_instance();
		$subtotal_label                   = __( 'Subtotal', 'woocommerce' );
		$other_costs_label                = $this->get_totals_item_description();
		$display_cart_price_including_tax = get_option( 'woocommerce_tax_display_cart' ) === 'incl';
		$subtotal                         = $display_cart_price_including_tax ? $cart->get_subtotal_tax() : $cart->get_subtotal();
		$formatted_subtotal               = '';
		$html                             = new \WP_HTML_Tag_Processor( wc_price( $subtotal ) );
		$wrapper_attributes               = get_block_wrapper_attributes(
			array(
				'data-wp-interactive' => 'woocommerce/mini-cart-footer-block',
				'class'               => 'wc-block-mini-cart__footer',
			)
		);

		if ( $html->next_tag( 'bdi' ) ) {
			while ( $html->next_token() ) {
				if ( '#text' === $html->get_token_name() ) {
						$formatted_subtotal .= $html->get_modifiable_text();
				}
			}
		}

		wp_interactivity_state(
			$this->get_full_block_name(),
			array(
				'formattedSubtotal' => $formatted_subtotal,
			)
		);

		?>
		<div <?php echo $wrapper_attributes; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
			<div class="wc-block-components-totals-item wc-block-mini-cart__footer-subtotal">
				<span class="wc-block-components-totals-item__label">
					<?php echo esc_html( $subtotal_label ); ?>
				</span>
				<span data-wp-text="woocommerce/mini-cart::state.formattedSubtotal" class="wc-block-formatted-money-amount wc-block-components-formatted-money-amount wc-block-components-totals-item__value">
				</span>
				<div class="wc-block-components-totals-item__description">
					<?php echo esc_html( $other_costs_label ); ?>
				</div>
			</div>
			<div class="wc-block-mini-cart__footer-actions">
				<?php
				if ( empty( $content ) ) {
					// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					echo do_blocks( '<!-- wp:woocommerce/mini-cart-cart-button-block /--><!-- wp:woocommerce/mini-cart-checkout-button-block /-->' );
				} else {
					// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
					echo $content;
				}
				?>
			</div>
		</div>
		<?php
		return ob_get_clean();
	}

	/**
	 * Return the main instance of WC_Cart class.
	 *
	 * @return \WC_Cart CartController class instance.
	 */
	protected function get_cart_instance() {
		$cart = WC()->cart;

		if ( $cart && $cart instanceof \WC_Cart ) {
			return $cart;
		}

		return null;
	}

	/**
	 * Computes the total items description text based on which settings are enabled.
	 *
	 * @return string The description text for the total items, or empty string if none are enabled.
	 */
	private function get_totals_item_description() {
		$taxes_enabled    = wc_tax_enabled();
		$shipping_enabled = wc_shipping_enabled();
		$coupons_enabled  = wc_coupons_enabled();

		// All three enabled.
		if ( $taxes_enabled && $shipping_enabled && $coupons_enabled ) {
			return __(
				'Shipping, taxes, and discounts calculated at checkout.',
				'woocommerce'
			);
		}

		// Shipping + taxes.
		if ( $shipping_enabled && $taxes_enabled ) {
			return __(
				'Shipping and taxes calculated at checkout.',
				'woocommerce'
			);
		}

		// Shipping + discounts.
		if ( $shipping_enabled && $coupons_enabled ) {
			return __(
				'Shipping and discounts calculated at checkout.',
				'woocommerce'
			);
		}

		// Taxes + discounts.
		if ( $taxes_enabled && $coupons_enabled ) {
			return __(
				'Taxes and discounts calculated at checkout.',
				'woocommerce'
			);
		}

		// Only shipping.
		if ( $shipping_enabled ) {
			return __( 'Shipping calculated at checkout.', 'woocommerce' );
		}

		// Only taxes.
		if ( $taxes_enabled ) {
			return __( 'Taxes calculated at checkout.', 'woocommerce' );
		}

		// Only discounts.
		if ( $coupons_enabled ) {
			return __( 'Discounts calculated at checkout.', 'woocommerce' );
		}

		// None enabled.
		return '';
	}

	/**
	 * Render the markup for the Mini-Cart Contents block.
	 *
	 * @param array    $attributes Block attributes.
	 * @param string   $content    Block content.
	 * @param WP_Block $block      Block instance.
	 * @return string Rendered block type output.
	 */
	protected function render( $attributes, $content, $block ) {
		if ( Features::is_enabled( 'experimental-iapi-mini-cart' ) ) {
			return $this->render_experimental_iapi_mini_cart_footer( $attributes, $content, $block );
		}

		return $content;
	}
}

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).