Automattic\WooCommerce\Blocks\BlockTypes
CustomerAccount::render_dropdown
Render the block as a dropdown navigation.
Method of the class: CustomerAccount{}
No Hooks.
Returns
String. Rendered block output.
Usage
// private - for code of main (parent) class only $result = $this->render_dropdown( $attributes, $classes_and_styles, $aria_label, $label_markup );
- $attributes(array) (required)
- Block attributes.
- $classes_and_styles(array) (required)
- Classes and styles from block attributes.
- $aria_label(string) (required)
- Pre-computed aria-label attribute string.
- $label_markup(string) (required)
- Pre-computed label HTML markup.
CustomerAccount::render_dropdown() CustomerAccount::render dropdown code WC 10.8.1
<?php
private function render_dropdown( $attributes, $classes_and_styles, $aria_label, $label_markup ) {
$allowed_svg = $this->get_allowed_svg();
$context = array(
'isDropdownOpen' => false,
'showAbove' => false,
'alignRight' => false,
);
$menu_items = wc_get_account_menu_items();
$dropdown_html = $this->render_dropdown_menu( $menu_items );
ob_start();
?>
<div
class="wp-block-woocommerce-customer-account wc-block-customer-account--has-dropdown <?php echo esc_attr( $classes_and_styles['classes'] ); ?>"
style="<?php echo esc_attr( $classes_and_styles['styles'] ); ?>"
data-wp-interactive="woocommerce/customer-account/private"
<?php echo wp_interactivity_data_wp_context( $context ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
data-wp-class--wc-block-customer-account--align-right="context.alignRight"
data-wp-class--wc-block-customer-account--is-dropdown-open="context.isDropdownOpen"
data-wp-class--wc-block-customer-account--show-above="context.showAbove"
data-wp-on--focusout="actions.handleFocusOut"
data-wp-on-document--click="actions.handleDocumentClick"
data-wp-on-document--keydown="actions.handleKeydown"
>
<button
type="button"
class="wc-block-customer-account__toggle"
<?php echo $aria_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
aria-haspopup="true"
data-wp-bind--aria-expanded="context.isDropdownOpen"
data-wp-on--click="actions.toggleDropdown"
>
<?php echo wp_kses( $this->render_icon( $attributes ), $allowed_svg ); ?>
<?php echo $label_markup; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<?php echo $this->render_caret_icon(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</button>
<nav
class="wc-block-customer-account__dropdown"
aria-label="<?php echo esc_attr__( 'Account navigation', 'woocommerce' ); ?>"
data-wp-bind--hidden="!context.isDropdownOpen"
>
<?php echo $dropdown_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</nav>
</div>
<?php
return (string) ob_get_clean();
}