, 'wp-element-button', 'wc-block-components-product-button__button', $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '', $is_ajax_button ? 'ajax_add_to_cart' : '', 'product_type_' . $product->get_type(), esc_attr( $styles_and_classes['classes'] ), ) ) ); $default_quantity = 1; /** * Filters the change the quantity to add to cart. * * @since 10.9.0 * @param number $default_quantity The default quantity. * @param number $product_id The product id. */ $quantity_to_add = apply_filters( 'woocommerce_add_to_cart_quantity', $default_quantity, $product->get_id() ); $context = array( 'quantityToAdd' => $quantity_to_add, 'productId' => $product->get_id(), 'addToCartText' => null !== $product->add_to_cart_text() ? $product->add_to_cart_text() : __( 'Add to cart', 'woocommerce' ), 'temporaryNumberOfItems' => $number_of_items_in_cart, 'animationStatus' => 'IDLE', ); /** * Allow filtering of the add to cart button arguments. * * @since 9.7.0 */ $args = apply_filters( 'woocommerce_loop_add_to_cart_args', array( 'class' => $html_classes, 'attributes' => array( 'data-product_id' => $product->get_id(), 'data-product_sku' => $product->get_sku(), 'aria-label' => $product->add_to_cart_description(), 'rel' => 'nofollow', ), ), $product ); if ( isset( $args['attributes']['aria-label'] ) ) { $args['attributes']['aria-label'] = wp_strip_all_tags( $args['attributes']['aria-label'] ); } if ( isset( WC()->cart ) && ! WC()->cart->is_empty() ) { $this->prevent_cache(); } $interactive = array( 'namespace' => 'woocommerce/product-button', ); $div_directives = ' data-wc-interactive=\'' . wp_json_encode( $interactive, JSON_NUMERIC_CHECK | JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) . '\' data-wc-context=\'' . wp_json_encode( $context, JSON_NUMERIC_CHECK | JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) . '\' '; $button_directives = ' data-wc-on--click="actions.addToCart" data-wc-class--loading="context.isLoading" '; $anchor_directive = ' data-wc-on--click="woocommerce/product-collection::actions.viewProduct" '; $span_button_directives = ' data-wc-text="state.addToCartText" data-wc-class--wc-block-slide-in="state.slideInAnimation" data-wc-class--wc-block-slide-out="state.slideOutAnimation" data-wc-on--animationend="actions.handleAnimationEnd" data-wc-watch="callbacks.startAnimation" data-wc-layout-init="callbacks.syncTemporaryNumberOfItemsOnLoad" '; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', array_filter( [ 'wp-block-button wc-block-components-product-button', esc_attr( $classname . ' ' . $custom_width_classes . ' ' . $custom_align_classes ), ] ) ), ) ); /** * Filters the add to cart button class. * * @since 8.7.0 * * @param string $class The class. */ return apply_filters( 'woocommerce_loop_add_to_cart_link', strtr( '