Merge pull request #17692 from woocommerce/update/16925
Add add_to_cart_description method and aria-labels to cart buttons in the loop
This commit is contained in:
commit
21e51b9fc6
|
@ -1762,6 +1762,17 @@ class WC_Product extends WC_Abstract_Legacy_Product {
|
|||
return apply_filters( 'woocommerce_product_add_to_cart_text', __( 'Read more', 'woocommerce' ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the add to cart button text description - used in aria tags.
|
||||
*
|
||||
* @since 3.3.0
|
||||
* @return string
|
||||
*/
|
||||
public function add_to_cart_description() {
|
||||
/* translators: %s: Product title */
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_description', sprintf( __( 'Read more about “%s”', 'woocommerce' ), $this->get_name() ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the main product image.
|
||||
*
|
||||
|
|
|
@ -180,4 +180,15 @@ class WC_Product_External extends WC_Product {
|
|||
public function add_to_cart_text() {
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_text', $this->get_button_text() ? $this->get_button_text() : _x( 'Buy product', 'placeholder', 'woocommerce' ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the add to cart button text description - used in aria tags.
|
||||
*
|
||||
* @since 3.3.0
|
||||
* @return string
|
||||
*/
|
||||
public function add_to_cart_description() {
|
||||
/* translators: %s: Product title */
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_description', $this->get_button_text() ? $this->get_button_text() : sprintf( __( 'Buy “%s”', 'woocommerce' ), $this->get_name() ), $this );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,17 @@ class WC_Product_Grouped extends WC_Product {
|
|||
return apply_filters( 'woocommerce_product_add_to_cart_text', __( 'View products', 'woocommerce' ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the add to cart button text description - used in aria tags.
|
||||
*
|
||||
* @since 3.3.0
|
||||
* @return string
|
||||
*/
|
||||
public function add_to_cart_description() {
|
||||
/* translators: %s: Product title */
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_description', sprintf( __( 'View products in the “%s” group', 'woocommerce' ), $this->get_name() ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether or not the product is on sale.
|
||||
*
|
||||
|
|
|
@ -55,4 +55,17 @@ class WC_Product_Simple extends WC_Product {
|
|||
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_text', $text, $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the add to cart button text description - used in aria tags.
|
||||
*
|
||||
* @since 3.3.0
|
||||
* @return string
|
||||
*/
|
||||
public function add_to_cart_description() {
|
||||
/* translators: %s: Product title */
|
||||
$text = $this->is_purchasable() && $this->is_in_stock() ? __( 'Add “%s” to your cart', 'woocommerce' ) : __( 'Read more about “%s”', 'woocommerce' );
|
||||
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_description', sprintf( $text, $this->get_name() ), $this );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,6 +60,17 @@ class WC_Product_Variable extends WC_Product {
|
|||
return apply_filters( 'woocommerce_product_add_to_cart_text', $this->is_purchasable() ? __( 'Select options', 'woocommerce' ) : __( 'Read more', 'woocommerce' ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the add to cart button text description - used in aria tags.
|
||||
*
|
||||
* @since 3.3.0
|
||||
* @return string
|
||||
*/
|
||||
public function add_to_cart_description() {
|
||||
/* translators: %s: Product title */
|
||||
return apply_filters( 'woocommerce_product_add_to_cart_description', sprintf( __( 'Select options for “%s”', 'woocommerce' ), $this->get_name() ), $this );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an array of all sale and regular prices from all variations. This is used for example when displaying the price range at variable product level or seeing if the variable product is on sale.
|
||||
*
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
* @see https://docs.woocommerce.com/document/template-structure/
|
||||
* @author WooThemes
|
||||
* @package WooCommerce/Templates
|
||||
* @version 3.0.0
|
||||
* @version 3.3.0
|
||||
*/
|
||||
|
||||
if ( ! defined( 'ABSPATH' ) ) {
|
||||
|
@ -22,13 +22,14 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|||
|
||||
global $product;
|
||||
|
||||
echo apply_filters( 'woocommerce_loop_add_to_cart_link',
|
||||
sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s">%s</a>',
|
||||
echo apply_filters( 'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.
|
||||
sprintf( '<a rel="nofollow" href="%s" data-quantity="%s" data-product_id="%s" data-product_sku="%s" class="%s" aria-label="%s">%s</a>',
|
||||
esc_url( $product->add_to_cart_url() ),
|
||||
esc_attr( isset( $quantity ) ? $quantity : 1 ),
|
||||
esc_attr( $product->get_id() ),
|
||||
esc_attr( $product->get_sku() ),
|
||||
esc_attr( isset( $class ) ? $class : 'button' ),
|
||||
esc_attr( $product->add_to_cart_description() ),
|
||||
esc_html( $product->add_to_cart_text() )
|
||||
),
|
||||
$product );
|
||||
|
|
Loading…
Reference in New Issue