automatewoo/includes/Variables/Cart_Link.php
fei-source 47d3c9a8b6 Update to v6.2.2
Source: GrootMade/Festinger Vault
2026-03-15 08:31:15 +08:00

56 lines
1.3 KiB
PHP

<?php
namespace AutomateWoo;
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Class for handling Cart Link Variable
*
* @class Variable_Cart_Link
*/
class Variable_Cart_Link extends Variable {
/**
* Load the admin details for this variable
*/
public function load_admin_details() {
$this->description = __( "Displays a unique link to the cart page that will also restore items to the customer's cart.", 'automatewoo' );
$this->add_parameter_select_field(
'page',
__( 'Sets which page the link will direct the customer to when clicked.', 'automatewoo' ),
[
'' => __( 'Cart', 'automatewoo' ),
'checkout' => __( 'Checkout', 'automatewoo' ),
]
);
}
/**
* Get the Cart Link URL
*
* @param Cart $cart The cart object
* @param array $parameters The variable parameters
* @return string The Cart Link URL
*/
public function get_value( $cart, $parameters ) {
$page = empty( $parameters['page'] ) ? 'cart' : $parameters['page'];
// SEMGREP WARNING EXPLANATION
// URL is escaped. However, Semgrep only considers esc_url as valid.
return esc_url_raw(
add_query_arg(
[
'aw-action' => 'restore-cart',
'token' => $cart->get_token(),
'redirect' => $page,
],
wc_get_page_permalink( 'cart' )
)
);
}
}