Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Admin/API
File: OnboardingTasks.php
<div class="wp-block-media-text alignwide' . $css_class . '"><figure class="wp-block-media-text__media"></figure><div class="wp-block-media-text__content"><!-- wp:paragraph {"placeholder":"' . __( 'Content…', 'woocommerce' ) . '","fontSize":"large"} -->
[500] Fix | Delete
<p class="has-large-font-size"></p>
[501] Fix | Delete
<!-- /wp:paragraph --></div></div>
[502] Fix | Delete
<!-- /wp:media-text -->';
[503] Fix | Delete
}
[504] Fix | Delete
[505] Fix | Delete
/**
[506] Fix | Delete
* Returns a homepage template to be inserted into a post. A different template will be used depending on the number of products.
[507] Fix | Delete
*
[508] Fix | Delete
* @internal
[509] Fix | Delete
* @param int $post_id ID of the homepage template.
[510] Fix | Delete
* @return string Template contents.
[511] Fix | Delete
*/
[512] Fix | Delete
private static function get_homepage_template( $post_id ) {
[513] Fix | Delete
$products = wp_count_posts( 'product' );
[514] Fix | Delete
if ( $products->publish >= 4 ) {
[515] Fix | Delete
$images = self::sideload_homepage_images( $post_id, 1 );
[516] Fix | Delete
$image_1 = ! empty( $images[0] ) ? $images[0] : '';
[517] Fix | Delete
$template = self::get_homepage_cover_block( $image_1 ) . '
[518] Fix | Delete
<!-- wp:heading {"align":"center"} -->
[519] Fix | Delete
<h2 style="text-align:center">' . __( 'Shop by Category', 'woocommerce' ) . '</h2>
[520] Fix | Delete
<!-- /wp:heading -->
[521] Fix | Delete
<!-- wp:shortcode -->
[522] Fix | Delete
[product_categories number="0" parent="0"]
[523] Fix | Delete
<!-- /wp:shortcode -->
[524] Fix | Delete
<!-- wp:heading {"align":"center"} -->
[525] Fix | Delete
<h2 style="text-align:center">' . __( 'New In', 'woocommerce' ) . '</h2>
[526] Fix | Delete
<!-- /wp:heading -->
[527] Fix | Delete
<!-- wp:woocommerce/product-new {"columns":4} /-->
[528] Fix | Delete
<!-- wp:heading {"align":"center"} -->
[529] Fix | Delete
<h2 style="text-align:center">' . __( 'Fan Favorites', 'woocommerce' ) . '</h2>
[530] Fix | Delete
<!-- /wp:heading -->
[531] Fix | Delete
<!-- wp:woocommerce/product-top-rated {"columns":4} /-->
[532] Fix | Delete
<!-- wp:heading {"align":"center"} -->
[533] Fix | Delete
<h2 style="text-align:center">' . __( 'On Sale', 'woocommerce' ) . '</h2>
[534] Fix | Delete
<!-- /wp:heading -->
[535] Fix | Delete
<!-- wp:woocommerce/product-on-sale {"columns":4} /-->
[536] Fix | Delete
<!-- wp:heading {"align":"center"} -->
[537] Fix | Delete
<h2 style="text-align:center">' . __( 'Best Sellers', 'woocommerce' ) . '</h2>
[538] Fix | Delete
<!-- /wp:heading -->
[539] Fix | Delete
<!-- wp:woocommerce/product-best-sellers {"columns":4} /-->
[540] Fix | Delete
';
[541] Fix | Delete
[542] Fix | Delete
/**
[543] Fix | Delete
* Modify the template/content of the default homepage.
[544] Fix | Delete
*
[545] Fix | Delete
* @param string $template The default homepage template.
[546] Fix | Delete
*/
[547] Fix | Delete
return apply_filters( 'woocommerce_admin_onboarding_homepage_template', $template );
[548] Fix | Delete
}
[549] Fix | Delete
[550] Fix | Delete
$images = self::sideload_homepage_images( $post_id, 3 );
[551] Fix | Delete
$image_1 = ! empty( $images[0] ) ? $images[0] : '';
[552] Fix | Delete
$image_2 = ! empty( $images[1] ) ? $images[1] : '';
[553] Fix | Delete
$image_3 = ! empty( $images[2] ) ? $images[2] : '';
[554] Fix | Delete
$template = self::get_homepage_cover_block( $image_1 ) . '
[555] Fix | Delete
<!-- wp:heading {"align":"center"} -->
[556] Fix | Delete
<h2 style="text-align:center">' . __( 'New Products', 'woocommerce' ) . '</h2>
[557] Fix | Delete
<!-- /wp:heading -->
[558] Fix | Delete
[559] Fix | Delete
<!-- wp:woocommerce/product-new /--> ' .
[560] Fix | Delete
[561] Fix | Delete
self::get_homepage_media_block( $image_1, 'right' ) .
[562] Fix | Delete
self::get_homepage_media_block( $image_2, 'left' ) .
[563] Fix | Delete
self::get_homepage_media_block( $image_3, 'right' ) . '
[564] Fix | Delete
[565] Fix | Delete
<!-- wp:woocommerce/featured-product /-->';
[566] Fix | Delete
[567] Fix | Delete
/** This filter is documented in src/API/OnboardingTasks.php. */
[568] Fix | Delete
return apply_filters( 'woocommerce_admin_onboarding_homepage_template', $template );
[569] Fix | Delete
}
[570] Fix | Delete
[571] Fix | Delete
/**
[572] Fix | Delete
* Gets the possible industry images from the plugin folder for sideloading. If an image doesn't exist, other.jpg is used a fallback.
[573] Fix | Delete
*
[574] Fix | Delete
* @internal
[575] Fix | Delete
* @return array An array of images by industry.
[576] Fix | Delete
*/
[577] Fix | Delete
private static function get_available_homepage_images() {
[578] Fix | Delete
$industry_images = array();
[579] Fix | Delete
$industries = OnboardingIndustries::get_allowed_industries();
[580] Fix | Delete
foreach ( $industries as $industry_slug => $label ) {
[581] Fix | Delete
$industry_images[ $industry_slug ] = apply_filters( 'woocommerce_admin_onboarding_industry_image', WC_ADMIN_IMAGES_FOLDER_URL . '/onboarding/other-small.jpg', $industry_slug );
[582] Fix | Delete
}
[583] Fix | Delete
return $industry_images;
[584] Fix | Delete
}
[585] Fix | Delete
[586] Fix | Delete
/**
[587] Fix | Delete
* Uploads a number of images to a homepage template, depending on the selected industry from the profile wizard.
[588] Fix | Delete
*
[589] Fix | Delete
* @internal
[590] Fix | Delete
* @param int $post_id ID of the homepage template.
[591] Fix | Delete
* @param int $number_of_images The number of images that should be sideloaded (depending on how many media slots are in the template).
[592] Fix | Delete
* @return array An array of images that have been attached to the post.
[593] Fix | Delete
*/
[594] Fix | Delete
private static function sideload_homepage_images( $post_id, $number_of_images ) {
[595] Fix | Delete
$profile = get_option( OnboardingProfile::DATA_OPTION, array() );
[596] Fix | Delete
$images_to_sideload = array();
[597] Fix | Delete
$available_images = self::get_available_homepage_images();
[598] Fix | Delete
[599] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/image.php';
[600] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/file.php';
[601] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/media.php';
[602] Fix | Delete
[603] Fix | Delete
if ( ! empty( $profile['industry'] ) ) {
[604] Fix | Delete
foreach ( $profile['industry'] as $selected_industry ) {
[605] Fix | Delete
if ( is_string( $selected_industry ) ) {
[606] Fix | Delete
$industry_slug = $selected_industry;
[607] Fix | Delete
} elseif ( is_array( $selected_industry ) && ! empty( $selected_industry['slug'] ) ) {
[608] Fix | Delete
$industry_slug = $selected_industry['slug'];
[609] Fix | Delete
} else {
[610] Fix | Delete
continue;
[611] Fix | Delete
}
[612] Fix | Delete
// Capture the first industry for use in our minimum images logic.
[613] Fix | Delete
$first_industry = isset( $first_industry ) ? $first_industry : $industry_slug;
[614] Fix | Delete
$images_to_sideload[] = ! empty( $available_images[ $industry_slug ] ) ? $available_images[ $industry_slug ] : $available_images['other'];
[615] Fix | Delete
}
[616] Fix | Delete
}
[617] Fix | Delete
[618] Fix | Delete
// Make sure we have at least {$number_of_images} images.
[619] Fix | Delete
if ( count( $images_to_sideload ) < $number_of_images ) {
[620] Fix | Delete
for ( $i = count( $images_to_sideload ); $i < $number_of_images; $i++ ) {
[621] Fix | Delete
// Fill up missing image slots with the first selected industry, or other.
[622] Fix | Delete
$industry = isset( $first_industry ) ? $first_industry : 'other';
[623] Fix | Delete
$images_to_sideload[] = empty( $available_images[ $industry ] ) ? $available_images['other'] : $available_images[ $industry ];
[624] Fix | Delete
}
[625] Fix | Delete
}
[626] Fix | Delete
[627] Fix | Delete
$already_sideloaded = array();
[628] Fix | Delete
$images_for_post = array();
[629] Fix | Delete
foreach ( $images_to_sideload as $image ) {
[630] Fix | Delete
// Avoid uploading two of the same image, if an image is repeated.
[631] Fix | Delete
if ( ! empty( $already_sideloaded[ $image ] ) ) {
[632] Fix | Delete
$images_for_post[] = $already_sideloaded[ $image ];
[633] Fix | Delete
continue;
[634] Fix | Delete
}
[635] Fix | Delete
[636] Fix | Delete
$sideload_id = \media_sideload_image( $image, $post_id, null, 'id' );
[637] Fix | Delete
if ( ! is_wp_error( $sideload_id ) ) {
[638] Fix | Delete
$sideload_url = wp_get_attachment_url( $sideload_id );
[639] Fix | Delete
$already_sideloaded[ $image ] = array(
[640] Fix | Delete
'id' => $sideload_id,
[641] Fix | Delete
'url' => $sideload_url,
[642] Fix | Delete
);
[643] Fix | Delete
$images_for_post[] = $already_sideloaded[ $image ];
[644] Fix | Delete
}
[645] Fix | Delete
}
[646] Fix | Delete
[647] Fix | Delete
return $images_for_post;
[648] Fix | Delete
}
[649] Fix | Delete
[650] Fix | Delete
/**
[651] Fix | Delete
* Create a homepage from a template.
[652] Fix | Delete
*
[653] Fix | Delete
* @return WP_Error|array
[654] Fix | Delete
*/
[655] Fix | Delete
public static function create_homepage() {
[656] Fix | Delete
$post_id = wp_insert_post(
[657] Fix | Delete
array(
[658] Fix | Delete
'post_title' => __( 'Homepage', 'woocommerce' ),
[659] Fix | Delete
'post_type' => 'page',
[660] Fix | Delete
'post_status' => 'publish',
[661] Fix | Delete
'post_content' => '', // Template content is updated below, so images can be attached to the post.
[662] Fix | Delete
)
[663] Fix | Delete
);
[664] Fix | Delete
[665] Fix | Delete
if ( ! is_wp_error( $post_id ) && 0 < $post_id ) {
[666] Fix | Delete
[667] Fix | Delete
$template = self::get_homepage_template( $post_id );
[668] Fix | Delete
wp_update_post(
[669] Fix | Delete
array(
[670] Fix | Delete
'ID' => $post_id,
[671] Fix | Delete
'post_content' => $template,
[672] Fix | Delete
)
[673] Fix | Delete
);
[674] Fix | Delete
[675] Fix | Delete
update_option( 'show_on_front', 'page' );
[676] Fix | Delete
update_option( 'page_on_front', $post_id );
[677] Fix | Delete
update_option( 'woocommerce_onboarding_homepage_post_id', $post_id );
[678] Fix | Delete
[679] Fix | Delete
// Use the full width template on stores using Storefront.
[680] Fix | Delete
if ( 'storefront' === get_stylesheet() ) {
[681] Fix | Delete
update_post_meta( $post_id, '_wp_page_template', 'template-fullwidth.php' );
[682] Fix | Delete
}
[683] Fix | Delete
[684] Fix | Delete
return array(
[685] Fix | Delete
'status' => 'success',
[686] Fix | Delete
'message' => __( 'Homepage created', 'woocommerce' ),
[687] Fix | Delete
'post_id' => $post_id,
[688] Fix | Delete
'edit_post_link' => htmlspecialchars_decode( get_edit_post_link( $post_id ) ),
[689] Fix | Delete
);
[690] Fix | Delete
} else {
[691] Fix | Delete
return $post_id;
[692] Fix | Delete
}
[693] Fix | Delete
}
[694] Fix | Delete
[695] Fix | Delete
/**
[696] Fix | Delete
* Get the query params for task lists.
[697] Fix | Delete
*
[698] Fix | Delete
* @return array
[699] Fix | Delete
*/
[700] Fix | Delete
public function get_task_list_params() {
[701] Fix | Delete
$params = array();
[702] Fix | Delete
$params['ids'] = array(
[703] Fix | Delete
'description' => __( 'Optional parameter to get only specific task lists by id.', 'woocommerce' ),
[704] Fix | Delete
'type' => 'array',
[705] Fix | Delete
'sanitize_callback' => 'wp_parse_slug_list',
[706] Fix | Delete
'validate_callback' => 'rest_validate_request_arg',
[707] Fix | Delete
'items' => array(
[708] Fix | Delete
'enum' => TaskLists::get_list_ids(),
[709] Fix | Delete
'type' => 'string',
[710] Fix | Delete
),
[711] Fix | Delete
);
[712] Fix | Delete
$params['extended_tasks'] = array(
[713] Fix | Delete
'description' => __( 'List of extended deprecated tasks from the client side filter.', 'woocommerce' ),
[714] Fix | Delete
'type' => 'array',
[715] Fix | Delete
'validate_callback' => function( $param, $request, $key ) {
[716] Fix | Delete
$has_valid_keys = true;
[717] Fix | Delete
foreach ( $param as $task ) {
[718] Fix | Delete
if ( $has_valid_keys ) {
[719] Fix | Delete
$has_valid_keys = array_key_exists( 'list_id', $task ) && array_key_exists( 'id', $task );
[720] Fix | Delete
}
[721] Fix | Delete
}
[722] Fix | Delete
return $has_valid_keys;
[723] Fix | Delete
},
[724] Fix | Delete
);
[725] Fix | Delete
return $params;
[726] Fix | Delete
}
[727] Fix | Delete
[728] Fix | Delete
/**
[729] Fix | Delete
* Get the onboarding tasks.
[730] Fix | Delete
*
[731] Fix | Delete
* @param WP_REST_Request $request Full details about the request.
[732] Fix | Delete
* @return WP_REST_Response|WP_Error
[733] Fix | Delete
*/
[734] Fix | Delete
public function get_tasks( $request ) {
[735] Fix | Delete
$extended_tasks = $request->get_param( 'extended_tasks' );
[736] Fix | Delete
$task_list_ids = $request->get_param( 'ids' );
[737] Fix | Delete
[738] Fix | Delete
TaskLists::maybe_add_extended_tasks( $extended_tasks );
[739] Fix | Delete
[740] Fix | Delete
$lists = is_array( $task_list_ids ) && count( $task_list_ids ) > 0 ? TaskLists::get_lists_by_ids( $task_list_ids ) : TaskLists::get_lists();
[741] Fix | Delete
[742] Fix | Delete
$json = array_map(
[743] Fix | Delete
function( $list ) {
[744] Fix | Delete
return $list->sort_tasks()->get_json();
[745] Fix | Delete
},
[746] Fix | Delete
$lists
[747] Fix | Delete
);
[748] Fix | Delete
[749] Fix | Delete
return rest_ensure_response( array_values( apply_filters( 'woocommerce_admin_onboarding_tasks', $json ) ) );
[750] Fix | Delete
}
[751] Fix | Delete
[752] Fix | Delete
/**
[753] Fix | Delete
* Dismiss a single task.
[754] Fix | Delete
*
[755] Fix | Delete
* @param WP_REST_Request $request Full details about the request.
[756] Fix | Delete
* @return WP_REST_Request|WP_Error
[757] Fix | Delete
*/
[758] Fix | Delete
public function dismiss_task( $request ) {
[759] Fix | Delete
$id = $request->get_param( 'id' );
[760] Fix | Delete
$task = TaskLists::get_task( $id );
[761] Fix | Delete
[762] Fix | Delete
if ( ! $task && $id ) {
[763] Fix | Delete
$task = new DeprecatedExtendedTask(
[764] Fix | Delete
null,
[765] Fix | Delete
array(
[766] Fix | Delete
'id' => $id,
[767] Fix | Delete
'is_dismissable' => true,
[768] Fix | Delete
)
[769] Fix | Delete
);
[770] Fix | Delete
}
[771] Fix | Delete
[772] Fix | Delete
if ( ! $task || ! $task->is_dismissable() ) {
[773] Fix | Delete
return new \WP_Error(
[774] Fix | Delete
'woocommerce_rest_invalid_task',
[775] Fix | Delete
__( 'Sorry, no dismissable task with that ID was found.', 'woocommerce' ),
[776] Fix | Delete
array(
[777] Fix | Delete
'status' => 404,
[778] Fix | Delete
)
[779] Fix | Delete
);
[780] Fix | Delete
}
[781] Fix | Delete
[782] Fix | Delete
$task->dismiss();
[783] Fix | Delete
return rest_ensure_response( $task->get_json() );
[784] Fix | Delete
}
[785] Fix | Delete
[786] Fix | Delete
/**
[787] Fix | Delete
* Undo dismissal of a single task.
[788] Fix | Delete
*
[789] Fix | Delete
* @param WP_REST_Request $request Full details about the request.
[790] Fix | Delete
* @return WP_REST_Request|WP_Error
[791] Fix | Delete
*/
[792] Fix | Delete
public function undo_dismiss_task( $request ) {
[793] Fix | Delete
$id = $request->get_param( 'id' );
[794] Fix | Delete
$task = TaskLists::get_task( $id );
[795] Fix | Delete
[796] Fix | Delete
if ( ! $task && $id ) {
[797] Fix | Delete
$task = new DeprecatedExtendedTask(
[798] Fix | Delete
null,
[799] Fix | Delete
array(
[800] Fix | Delete
'id' => $id,
[801] Fix | Delete
'is_dismissable' => true,
[802] Fix | Delete
)
[803] Fix | Delete
);
[804] Fix | Delete
}
[805] Fix | Delete
[806] Fix | Delete
if ( ! $task || ! $task->is_dismissable() ) {
[807] Fix | Delete
return new \WP_Error(
[808] Fix | Delete
'woocommerce_rest_invalid_task',
[809] Fix | Delete
__( 'Sorry, no dismissable task with that ID was found.', 'woocommerce' ),
[810] Fix | Delete
array(
[811] Fix | Delete
'status' => 404,
[812] Fix | Delete
)
[813] Fix | Delete
);
[814] Fix | Delete
}
[815] Fix | Delete
[816] Fix | Delete
$task->undo_dismiss();
[817] Fix | Delete
[818] Fix | Delete
return rest_ensure_response( $task->get_json() );
[819] Fix | Delete
}
[820] Fix | Delete
[821] Fix | Delete
/**
[822] Fix | Delete
* Snooze an onboarding task.
[823] Fix | Delete
*
[824] Fix | Delete
* @deprecated 7.8.0 snooze task is deprecated.
[825] Fix | Delete
*
[826] Fix | Delete
* @param WP_REST_Request $request Request data.
[827] Fix | Delete
*
[828] Fix | Delete
* @return WP_REST_Response|WP_Error
[829] Fix | Delete
*/
[830] Fix | Delete
public function snooze_task( $request ) {
[831] Fix | Delete
wc_deprecated_function( __CLASS__ . '::' . __FUNCTION__, '7.8.0' );
[832] Fix | Delete
[833] Fix | Delete
$task_id = $request->get_param( 'id' );
[834] Fix | Delete
$task_list_id = $request->get_param( 'task_list_id' );
[835] Fix | Delete
$duration = $request->get_param( 'duration' );
[836] Fix | Delete
[837] Fix | Delete
$task = TaskLists::get_task( $task_id, $task_list_id );
[838] Fix | Delete
[839] Fix | Delete
if ( ! $task && $task_id ) {
[840] Fix | Delete
$task = new DeprecatedExtendedTask(
[841] Fix | Delete
null,
[842] Fix | Delete
array(
[843] Fix | Delete
'id' => $task_id,
[844] Fix | Delete
'is_snoozeable' => true,
[845] Fix | Delete
)
[846] Fix | Delete
);
[847] Fix | Delete
}
[848] Fix | Delete
[849] Fix | Delete
if ( ! $task || ! $task->is_snoozeable() ) {
[850] Fix | Delete
return new \WP_Error(
[851] Fix | Delete
'woocommerce_rest_invalid_task',
[852] Fix | Delete
__( 'Sorry, no snoozeable task with that ID was found.', 'woocommerce' ),
[853] Fix | Delete
array(
[854] Fix | Delete
'status' => 404,
[855] Fix | Delete
)
[856] Fix | Delete
);
[857] Fix | Delete
}
[858] Fix | Delete
[859] Fix | Delete
$task->snooze( isset( $duration ) ? $duration : 'day' );
[860] Fix | Delete
return rest_ensure_response( $task->get_json() );
[861] Fix | Delete
}
[862] Fix | Delete
[863] Fix | Delete
/**
[864] Fix | Delete
* Undo snooze of a single task.
[865] Fix | Delete
*
[866] Fix | Delete
* @deprecated 7.8.0 undo snooze task is deprecated.
[867] Fix | Delete
*
[868] Fix | Delete
* @param WP_REST_Request $request Full details about the request.
[869] Fix | Delete
* @return WP_REST_Request|WP_Error
[870] Fix | Delete
*/
[871] Fix | Delete
public function undo_snooze_task( $request ) {
[872] Fix | Delete
wc_deprecated_function( __CLASS__ . '::' . __FUNCTION__, '7.8.0' );
[873] Fix | Delete
[874] Fix | Delete
$id = $request->get_param( 'id' );
[875] Fix | Delete
$task = TaskLists::get_task( $id );
[876] Fix | Delete
[877] Fix | Delete
if ( ! $task && $id ) {
[878] Fix | Delete
$task = new DeprecatedExtendedTask(
[879] Fix | Delete
null,
[880] Fix | Delete
array(
[881] Fix | Delete
'id' => $id,
[882] Fix | Delete
'is_snoozeable' => true,
[883] Fix | Delete
)
[884] Fix | Delete
);
[885] Fix | Delete
}
[886] Fix | Delete
[887] Fix | Delete
if ( ! $task || ! $task->is_snoozeable() ) {
[888] Fix | Delete
return new \WP_Error(
[889] Fix | Delete
'woocommerce_rest_invalid_task',
[890] Fix | Delete
__( 'Sorry, no snoozeable task with that ID was found.', 'woocommerce' ),
[891] Fix | Delete
array(
[892] Fix | Delete
'status' => 404,
[893] Fix | Delete
)
[894] Fix | Delete
);
[895] Fix | Delete
}
[896] Fix | Delete
[897] Fix | Delete
$task->undo_snooze();
[898] Fix | Delete
return rest_ensure_response( $task->get_json() );
[899] Fix | Delete
}
[900] Fix | Delete
[901] Fix | Delete
/**
[902] Fix | Delete
* Hide a task list.
[903] Fix | Delete
*
[904] Fix | Delete
* @param WP_REST_Request $request Request data.
[905] Fix | Delete
*
[906] Fix | Delete
* @return WP_REST_Response|WP_Error
[907] Fix | Delete
*/
[908] Fix | Delete
public function hide_task_list( $request ) {
[909] Fix | Delete
$id = $request->get_param( 'id' );
[910] Fix | Delete
$task_list = TaskLists::get_list( $id );
[911] Fix | Delete
[912] Fix | Delete
if ( ! $task_list ) {
[913] Fix | Delete
return new \WP_Error(
[914] Fix | Delete
'woocommerce_rest_invalid_task_list',
[915] Fix | Delete
__( 'Sorry, that task list was not found', 'woocommerce' ),
[916] Fix | Delete
array(
[917] Fix | Delete
'status' => 404,
[918] Fix | Delete
)
[919] Fix | Delete
);
[920] Fix | Delete
}
[921] Fix | Delete
[922] Fix | Delete
$update = $task_list->hide();
[923] Fix | Delete
$json = $task_list->get_json();
[924] Fix | Delete
[925] Fix | Delete
return rest_ensure_response( $json );
[926] Fix | Delete
}
[927] Fix | Delete
[928] Fix | Delete
/**
[929] Fix | Delete
* Unhide a task list.
[930] Fix | Delete
*
[931] Fix | Delete
* @param WP_REST_Request $request Request data.
[932] Fix | Delete
*
[933] Fix | Delete
* @return WP_REST_Response|WP_Error
[934] Fix | Delete
*/
[935] Fix | Delete
public function unhide_task_list( $request ) {
[936] Fix | Delete
$id = $request->get_param( 'id' );
[937] Fix | Delete
$task_list = TaskLists::get_list( $id );
[938] Fix | Delete
[939] Fix | Delete
if ( ! $task_list ) {
[940] Fix | Delete
return new \WP_Error(
[941] Fix | Delete
'woocommerce_tasks_invalid_task_list',
[942] Fix | Delete
__( 'Sorry, that task list was not found', 'woocommerce' ),
[943] Fix | Delete
array(
[944] Fix | Delete
'status' => 404,
[945] Fix | Delete
)
[946] Fix | Delete
);
[947] Fix | Delete
}
[948] Fix | Delete
[949] Fix | Delete
$update = $task_list->unhide();
[950] Fix | Delete
$json = $task_list->get_json();
[951] Fix | Delete
[952] Fix | Delete
return rest_ensure_response( $json );
[953] Fix | Delete
}
[954] Fix | Delete
[955] Fix | Delete
/**
[956] Fix | Delete
* Action a single task.
[957] Fix | Delete
*
[958] Fix | Delete
* @param WP_REST_Request $request Full details about the request.
[959] Fix | Delete
* @return WP_REST_Request|WP_Error
[960] Fix | Delete
*/
[961] Fix | Delete
public function action_task( $request ) {
[962] Fix | Delete
$id = $request->get_param( 'id' );
[963] Fix | Delete
$task = TaskLists::get_task( $id );
[964] Fix | Delete
[965] Fix | Delete
if ( ! $task && $id ) {
[966] Fix | Delete
$task = new DeprecatedExtendedTask(
[967] Fix | Delete
null,
[968] Fix | Delete
array(
[969] Fix | Delete
'id' => $id,
[970] Fix | Delete
)
[971] Fix | Delete
);
[972] Fix | Delete
}
[973] Fix | Delete
[974] Fix | Delete
if ( ! $task ) {
[975] Fix | Delete
return new \WP_Error(
[976] Fix | Delete
'woocommerce_rest_invalid_task',
[977] Fix | Delete
__( 'Sorry, no task with that ID was found.', 'woocommerce' ),
[978] Fix | Delete
array(
[979] Fix | Delete
'status' => 404,
[980] Fix | Delete
)
[981] Fix | Delete
);
[982] Fix | Delete
}
[983] Fix | Delete
[984] Fix | Delete
$task->mark_actioned();
[985] Fix | Delete
return rest_ensure_response( $task->get_json() );
[986] Fix | Delete
}
[987] Fix | Delete
[988] Fix | Delete
}
[989] Fix | Delete
[990] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function