You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
3.5 KiB
94 lines
3.5 KiB
<?php
|
|
/**
|
|
* A class for managing the place order and add to cart button text for subscription products.
|
|
*
|
|
* @package WooCommerce Subscriptions
|
|
* @since 4.0.0
|
|
*/
|
|
|
|
defined( 'ABSPATH' ) || exit;
|
|
|
|
class WCS_Call_To_Action_Button_Text_Manager {
|
|
|
|
/**
|
|
* Initialise the class's callbacks.
|
|
*/
|
|
public static function init() {
|
|
add_filter( 'woocommerce_subscription_settings', array( __CLASS__, 'add_settings' ), 5 );
|
|
add_filter( 'wc_subscription_product_add_to_cart_text', array( __CLASS__, 'filter_add_to_cart_text' ), 10, 2 );
|
|
add_filter( 'wcs_place_subscription_order_text', array( __CLASS__, 'filter_place_subscription_order_text' ) );
|
|
}
|
|
|
|
/**
|
|
* Adds the subscription add to cart and place order button text settings.
|
|
*
|
|
* @since 4.0.0
|
|
*
|
|
* @param array $settings The WC Subscriptions settings.
|
|
* @return array $settings
|
|
*/
|
|
public static function add_settings( $settings ) {
|
|
$button_text_settings = array(
|
|
array(
|
|
'name' => __( 'Button Text', 'woocommerce-subscriptions' ),
|
|
'type' => 'title',
|
|
'desc' => '',
|
|
'id' => WC_Subscriptions_Admin::$option_prefix . '_button_text',
|
|
),
|
|
array(
|
|
'name' => __( 'Add to Cart Button Text', 'woocommerce-subscriptions' ),
|
|
'desc' => __( 'A product displays a button with the text "Add to cart". By default, a subscription changes this to "Sign up now". You can customise the button text for subscriptions here.', 'woocommerce-subscriptions' ),
|
|
'tip' => '',
|
|
'id' => WC_Subscriptions_Admin::$option_prefix . '_add_to_cart_button_text',
|
|
'css' => 'min-width:150px;',
|
|
'default' => __( 'Sign up now', 'woocommerce-subscriptions' ),
|
|
'type' => 'text',
|
|
'desc_tip' => true,
|
|
'placeholder' => __( 'Sign up now', 'woocommerce-subscriptions' ),
|
|
),
|
|
array(
|
|
'name' => __( 'Place Order Button Text', 'woocommerce-subscriptions' ),
|
|
'desc' => __( 'Use this field to customise the text displayed on the checkout button when an order contains a subscription. Normally the checkout submission button displays "Place order". When the cart contains a subscription, this is changed to "Sign up now".', 'woocommerce-subscriptions' ),
|
|
'tip' => '',
|
|
'id' => WC_Subscriptions_Admin::$option_prefix . '_order_button_text',
|
|
'css' => 'min-width:150px;',
|
|
'default' => __( 'Sign up now', 'woocommerce-subscriptions' ),
|
|
'type' => 'text',
|
|
'desc_tip' => true,
|
|
'placeholder' => __( 'Sign up now', 'woocommerce-subscriptions' ),
|
|
),
|
|
array(
|
|
'type' => 'sectionend',
|
|
'id' => WC_Subscriptions_Admin::$option_prefix . '_button_text',
|
|
),
|
|
);
|
|
|
|
return array_merge( $button_text_settings, $settings );
|
|
}
|
|
|
|
/**
|
|
* Filters subscription products add to cart text to honour the setting.
|
|
*
|
|
* @since 4.0.0
|
|
*
|
|
* @param string $add_to_cart_text The product's add to cart text.
|
|
* @param WC_Abstract_Product $product The product.
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function filter_add_to_cart_text( $add_to_cart_text ) {
|
|
return get_option( WC_Subscriptions_Admin::$option_prefix . '_add_to_cart_button_text', $add_to_cart_text );
|
|
}
|
|
|
|
/**
|
|
* Filters the place order text while there's a subscription in the cart.
|
|
*
|
|
* @since 4.0.0
|
|
*
|
|
* @param string $button_text The default place order button text.
|
|
* @return string The button text.
|
|
*/
|
|
public static function filter_place_subscription_order_text( $button_text ) {
|
|
return get_option( WC_Subscriptions_Admin::$option_prefix . '_order_button_text', $button_text );
|
|
}
|
|
}
|
|
|