Fix/37601 Add `aria-describedby` to Select options button (#37880)
* Add `aria-describedby` to select options button * add a changelog * update the chnagelog file * fix type * fix the function name * remove `aria-describedby`s if with value * suggestions implemented * Minor PHPCS fixes --------- Co-authored-by: Jorge A. Torres <jorge.torres@automattic.com>
This commit is contained in:
parent
0ea5205672
commit
8e9ff0d7f5
|
@ -0,0 +1,5 @@
|
|||
Significance: minor
|
||||
Type: add
|
||||
|
||||
Add a function to get the aria-describedby description for the add to cart button.
|
||||
Add default description for the Select options button.
|
|
@ -1932,6 +1932,23 @@ class WC_Product extends WC_Abstract_Legacy_Product {
|
|||
return apply_filters( 'woocommerce_product_single_add_to_cart_text', __( 'Add to cart', 'woocommerce' ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the aria-describedby description for the add to cart button.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function add_to_cart_aria_describedby() {
|
||||
/**
|
||||
* Filter the aria-describedby description for the add to cart button.
|
||||
*
|
||||
* @since 7.8.0
|
||||
*
|
||||
* @param string $var Text for the 'aria-describedby' attribute.
|
||||
* @param WC_Product $this Product object.
|
||||
*/
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_aria_describedby', '', $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the add to cart button text.
|
||||
*
|
||||
|
|
|
@ -51,6 +51,20 @@ class WC_Product_Variable extends WC_Product {
|
|||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/**
|
||||
* Get the aria-describedby description for the add to cart button.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function add_to_cart_aria_describedby() {
|
||||
/**
|
||||
* This filter is documented in includes/abstracts/abstract-wc-product.php.
|
||||
*
|
||||
* @since 7.8.0
|
||||
*/
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_aria_describedby', $this->is_purchasable() ? __( 'This product has multiple variants. The options may be chosen on the product page', 'woocommerce' ) : '', $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the add to cart button text.
|
||||
*
|
||||
|
|
|
@ -1365,12 +1365,17 @@ if ( ! function_exists( 'woocommerce_template_loop_add_to_cart' ) ) {
|
|||
'data-product_id' => $product->get_id(),
|
||||
'data-product_sku' => $product->get_sku(),
|
||||
'aria-label' => $product->add_to_cart_description(),
|
||||
'aria-describedby' => $product->add_to_cart_aria_describedby(),
|
||||
'rel' => 'nofollow',
|
||||
),
|
||||
);
|
||||
|
||||
$args = apply_filters( 'woocommerce_loop_add_to_cart_args', wp_parse_args( $args, $defaults ), $product );
|
||||
|
||||
if ( ! empty( $args['attributes']['aria-describedby'] ) ) {
|
||||
$args['attributes']['aria-describedby'] = wp_strip_all_tags( $args['attributes']['aria-describedby'] );
|
||||
}
|
||||
|
||||
if ( isset( $args['attributes']['aria-label'] ) ) {
|
||||
$args['attributes']['aria-label'] = wp_strip_all_tags( $args['attributes']['aria-label'] );
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue