Automattic\WooCommerce\Admin\Features\OnboardingTasks\Tasks
Shipping{} │ WC 1.0
Shipping Task
No Hooks.
Usage
$Shipping = new Shipping();
// use class methods
Methods
- public can_view()
- public get_action_url()
- public get_content()
- public get_id()
- public get_time()
- public get_title()
- public static has_physical_products()
- public static has_shipping_zones()
- public is_complete()
Code of Shipping{} Shipping{}
WC 6.7.0
class Shipping extends Task {
/**
* ID.
*
* @return string
*/
public function get_id() {
return 'shipping';
}
/**
* Title.
*
* @return string
*/
public function get_title() {
if ( count( $this->task_list->get_sections() ) > 0 && ! $this->is_complete() ) {
return __( 'Select how to ship your products', 'woocommerce' );
}
if ( true === $this->get_parent_option( 'use_completed_title' ) ) {
if ( $this->is_complete() ) {
return __( 'You added shipping costs', 'woocommerce' );
}
return __( 'Add shipping costs', 'woocommerce' );
}
return __( 'Set up shipping', 'woocommerce' );
}
/**
* Content.
*
* @return string
*/
public function get_content() {
if ( count( $this->task_list->get_sections() ) > 0 ) {
return __( 'Set delivery costs and enable extra features, like shipping label printing.', 'woocommerce' );
}
return __(
"Set your store location and where you'll ship to.",
'woocommerce'
);
}
/**
* Time.
*
* @return string
*/
public function get_time() {
return __( '1 minute', 'woocommerce' );
}
/**
* Task completion.
*
* @return bool
*/
public function is_complete() {
return self::has_shipping_zones();
}
/**
* Task visibility.
*
* @return bool
*/
public function can_view() {
return self::has_physical_products();
}
/**
* Action URL.
*
* @return string
*/
public function get_action_url() {
return self::has_shipping_zones()
? admin_url( 'admin.php?page=wc-settings&tab=shipping' )
: null;
}
/**
* Check if the store has any shipping zones.
*
* @return bool
*/
public static function has_shipping_zones() {
return count( \WC_Shipping_Zones::get_zones() ) > 0;
}
/**
* Check if the store has physical products.
*
* @return bool
*/
public static function has_physical_products() {
$profiler_data = get_option( OnboardingProfile::DATA_OPTION, array() );
$product_types = isset( $profiler_data['product_types'] ) ? $profiler_data['product_types'] : array();
return in_array( 'physical', $product_types, true ) ||
count(
wc_get_products(
array(
'virtual' => false,
'limit' => 1,
)
)
) > 0;
}
}