78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Simple Product Class.
 | |
|  *
 | |
|  * The default product type kinda product.
 | |
|  *
 | |
|  * @package WooCommerce\Classes\Products
 | |
|  */
 | |
| 
 | |
| defined( 'ABSPATH' ) || exit;
 | |
| 
 | |
| /**
 | |
|  * Simple product class.
 | |
|  */
 | |
| class WC_Product_Simple extends WC_Product {
 | |
| 
 | |
| 	/**
 | |
| 	 * Initialize simple product.
 | |
| 	 *
 | |
| 	 * @param WC_Product|int $product Product instance or ID.
 | |
| 	 */
 | |
| 	public function __construct( $product = 0 ) {
 | |
| 		$this->supports[] = 'ajax_add_to_cart';
 | |
| 		parent::__construct( $product );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Get internal type.
 | |
| 	 *
 | |
| 	 * @return string
 | |
| 	 */
 | |
| 	public function get_type() {
 | |
| 		return 'simple';
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Get the add to url used mainly in loops.
 | |
| 	 *
 | |
| 	 * @return string
 | |
| 	 */
 | |
| 	public function add_to_cart_url() {
 | |
| 		$url = $this->is_purchasable() && $this->is_in_stock() ? remove_query_arg(
 | |
| 			'added-to-cart',
 | |
| 			add_query_arg(
 | |
| 				array(
 | |
| 					'add-to-cart' => $this->get_id(),
 | |
| 				),
 | |
| 				( function_exists( 'is_feed' ) && is_feed() ) || ( function_exists( 'is_404' ) && is_404() ) ? $this->get_permalink() : ''
 | |
| 			)
 | |
| 		) : $this->get_permalink();
 | |
| 		return apply_filters( 'woocommerce_product_add_to_cart_url', $url, $this );
 | |
| 	}
 | |
| 
 | |
| 	/**
 | |
| 	 * Get the add to cart button text.
 | |
| 	 *
 | |
| 	 * @return string
 | |
| 	 */
 | |
| 	public function add_to_cart_text() {
 | |
| 		$text = $this->is_purchasable() && $this->is_in_stock() ? __( 'Add to cart', 'woocommerce' ) : __( 'Read more', 'woocommerce' );
 | |
| 
 | |
| 		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 );
 | |
| 	}
 | |
| }
 |