<?php
namespace Automattic\WooCommerce\Blocks\Domain\Services\OnboardingTasks;
use Automattic\WooCommerce\Admin\Features\OnboardingTasks\Task;
/**
* Review the cart/checkout Task
*/
class ReviewCheckoutTask extends Task {
/**
* ID.
*
* @return string
*/
public function get_id() {
return 'review-checkout-experience';
}
/**
* Title.
*
* @return string
*/
public function get_title() {
return __( 'Review your checkout experience', 'woocommerce' );
}
/**
* Content.
*
* @return string
*/
public function get_content() {
return '';
}
/**
* Time.
*
* @return string
*/
public function get_time() {
return '';
}
/**
* Additional Info.
*
* @return string
*/
public function get_additional_info() {
return __( 'Make sure cart and checkout flows are configured correctly for your shoppers.', 'woocommerce' );
}
/**
* Task completion.
*
* @return bool
*/
public function is_complete() {
return $this->is_visited();
}
/**
* Check if the store uses blocks on the cart or checkout page.
*
* @return boolean
*/
private function has_cart_block() {
$cart_page_id = wc_get_page_id( 'cart' );
$has_block_cart = $cart_page_id && ( has_block( 'woocommerce/cart', $cart_page_id ) || has_block( 'woocommerce/classic-shortcode', $cart_page_id ) );
return $has_block_cart;
}
/**
* Check if the store uses blocks on the cart or checkout page.
*
* @return boolean
*/
private function has_checkout_block() {
$cart_page_id = wc_get_page_id( 'cart' );
$has_block_cart = $cart_page_id && ( has_block( 'woocommerce/cart', $cart_page_id ) || has_block( 'woocommerce/classic-shortcode', $cart_page_id ) );
return $has_block_cart;
}
/**
* Check if the store uses blocks on the cart or checkout page.
*
* @return boolean
*/
private function has_cart_or_checkout_block() {
return $this->has_cart_block() || $this->has_checkout_block();
}
/**
* Task visibility.
*
* @return bool
*/
public function can_view() {
return $this->has_cart_or_checkout_block();
}
/**
* Action URL.
*
* @return string
*/
public function get_action_url() {
$base_url = wc_current_theme_is_fse_theme() ? 'site-editor.php?postType=page&postId=' : 'post.php?action=edit&post=';
$page_id = $this->has_cart_block() ? wc_get_page_id( 'cart' ) : wc_get_page_id( 'checkout' );
$focus = $this->has_cart_block() ? 'cart' : 'checkout';
return admin_url( $base_url . absint( $page_id ) . '&focus=' . $focus . '&canvas=edit' );
}
}