plugin updates

This commit is contained in:
Tony Volpe
2024-09-17 10:43:54 -04:00
parent 44b413346f
commit b7c8882c8c
1359 changed files with 58219 additions and 11364 deletions

View File

@@ -119,26 +119,32 @@ function wc_get_endpoint_url( $endpoint, $value = '', $permalink = '' ) {
}
/**
* Hide menu items conditionally.
* Hide or adjust menu items conditionally.
*
* @param array $items Navigation items.
* @return array
*/
function wc_nav_menu_items( $items ) {
if ( ! is_user_logged_in() ) {
$customer_logout = get_option( 'woocommerce_logout_endpoint', 'customer-logout' );
$logout_endpoint = get_option( 'woocommerce_logout_endpoint', 'customer-logout' );
if ( ! empty( $customer_logout ) && ! empty( $items ) && is_array( $items ) ) {
foreach ( $items as $key => $item ) {
if ( empty( $item->url ) ) {
continue;
}
$path = wp_parse_url( $item->url, PHP_URL_PATH ) ?? '';
$query = wp_parse_url( $item->url, PHP_URL_QUERY ) ?? '';
if ( ! empty( $logout_endpoint ) && ! empty( $items ) && is_array( $items ) ) {
foreach ( $items as $key => $item ) {
if ( empty( $item->url ) ) {
continue;
}
if ( strstr( $path, $customer_logout ) || strstr( $query, $customer_logout ) ) {
unset( $items[ $key ] );
}
$path = wp_parse_url( $item->url, PHP_URL_PATH ) ?? '';
$query = wp_parse_url( $item->url, PHP_URL_QUERY ) ?? '';
$is_logout_link = strstr( $path, $logout_endpoint ) || strstr( $query, $logout_endpoint );
if ( ! $is_logout_link ) {
continue;
}
if ( is_user_logged_in() ) {
$items[ $key ]->url = wp_nonce_url( $item->url, 'customer-logout' );
} else {
unset( $items[ $key ] );
}
}
}
@@ -147,6 +153,40 @@ function wc_nav_menu_items( $items ) {
}
add_filter( 'wp_nav_menu_objects', 'wc_nav_menu_items', 10 );
/**
* Hide menu items in navigation blocks conditionally.
*
* Does the same thing as wc_nav_menu_items but for block themes.
*
* @since 9.3.0
* @param \WP_Block_list $inner_blocks Inner blocks.
* @return \WP_Block_list
*/
function wc_nav_menu_inner_blocks( $inner_blocks ) {
$logout_endpoint = get_option( 'woocommerce_logout_endpoint', 'customer-logout' );
if ( ! empty( $logout_endpoint ) && $inner_blocks ) {
foreach ( $inner_blocks as $inner_block_key => $inner_block ) {
$url = $inner_block->parsed_block['attrs']['url'] ?? '';
$path = wp_parse_url( $url, PHP_URL_PATH ) ?? '';
$query = wp_parse_url( $url, PHP_URL_QUERY ) ?? '';
$is_logout_link = strstr( $path, $logout_endpoint ) || strstr( $query, $logout_endpoint );
if ( ! $is_logout_link ) {
continue;
}
if ( is_user_logged_in() ) {
$inner_block->parsed_block['attrs']['url'] = wp_nonce_url( $inner_block->parsed_block['attrs']['url'], 'customer-logout' );
} else {
unset( $inner_blocks[ $inner_block_key ] );
}
}
}
return $inner_blocks;
}
add_filter( 'block_core_navigation_render_inner_blocks', 'wc_nav_menu_inner_blocks' );
/**
* Fix active class in nav for shop page.