get_type() && false === strpos( $args['class'], 'product_type_variable' ) ) { $args['class'] .= ' product_type_variable'; } if ( ! ( $product->is_purchasable() && $product->is_in_stock() ) ) { $args['class'] .= ' product_read_more'; } echo apply_filters( 'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok. sprintf( '%s', esc_url( $product->add_to_cart_url() ), esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ), esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ), isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : '', esc_html( $product->add_to_cart_text() ) ), $product, $args );