wc_get_product( mixed $the_product = false, array $deprecated = array() )
Main function for returning products, uses the WC_Product_Factory class.
Description #Description
This function should only be called after ‘init’ action is finished, as there might be taxonomies that are getting registered during the init action.
Parameters #Parameters
- $the_product
-
(Optional) Post object or post ID of the product.
Default value: false
- $deprecated
-
(Optional) Previously used to pass arguments to the factory, e.g. to force a type.
Default value: array()
Return #Return
(WC_Product|null|false)
Source #Source
File: includes/wc-product-functions.php
function wc_get_product( $the_product = false, $deprecated = array() ) { if ( ! did_action( 'woocommerce_init' ) || ! did_action( 'woocommerce_after_register_taxonomy' ) || ! did_action( 'woocommerce_after_register_post_type' ) ) { /* translators: 1: wc_get_product 2: woocommerce_init 3: woocommerce_after_register_taxonomy 4: woocommerce_after_register_post_type */ wc_doing_it_wrong( __FUNCTION__, sprintf( __( '%1$s should not be called before the %2$s, %3$s and %4$s actions have finished.', 'woocommerce' ), 'wc_get_product', 'woocommerce_init', 'woocommerce_after_register_taxonomy', 'woocommerce_after_register_post_type' ), '3.9' ); return false; } if ( ! empty( $deprecated ) ) { wc_deprecated_argument( 'args', '3.0', 'Passing args to wc_get_product is deprecated. If you need to force a type, construct the product class directly.' ); } return WC()->product_factory->get_product( $the_product, $deprecated ); }
Changelog #Changelog
Version | Description |
---|---|
2.2.0 | Introduced. |
Related #Related
Uses #Uses
Uses | Description |
---|---|
woocommerce.php: WC() |
Returns the main instance of WC. |
includes/wc-deprecated-functions.php: wc_doing_it_wrong() |
Wrapper for _doing_it_wrong(). |
includes/wc-deprecated-functions.php: wc_deprecated_argument() |
Wrapper for deprecated arguments so we can apply some extra logic. |
Used By #Used By
Used By | Description |
---|---|
includes/admin/class-wc-admin-post-types.php: WC_Admin_Post_Types::maybe_update_stock_status() |
Apply product type constraints to stock status. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_action_variable_low_stock_amount() |
Bulk action – Set Low Stock Amount. |
includes/class-wc-ajax.php: WC_AJAX::maybe_add_order_item() |
Add order item via AJAX. This is refactored for better unit testing. |
includes/abstracts/abstract-wc-product.php: WC_Product::is_visible_core() |
Returns whether or not the product is visible in the catalog (doesn’t trigger filters). |
packages/woocommerce-admin/src/Notes/LearnMoreAboutVariableProducts.php: LearnMoreAboutVariableProducts::maybe_add_new_note() |
Maybe attempt to add a new note if product is published. |
packages/woocommerce-admin/src/API/OnboardingTasks.php: OnboardingTasks::create_product_from_template() |
Creates a product from a template name passed in through the template_name param. |
packages/woocommerce-blocks/src/StoreApi/Utilities/CartController.php: CartController::get_variable_product_attributes() |
Get product attributes from the variable product (which may be the parent if the product object is a variation). |
packages/woocommerce-blocks/src/StoreApi/Utilities/CartController.php: CartController::get_product_for_cart() |
Get a product object to be added to the cart. |
packages/woocommerce-blocks/src/StoreApi/Utilities/CartController.php: CartController::filter_request_data() |
Filter data for add to cart requests. |
packages/woocommerce-blocks/src/StoreApi/Routes/ProductsById.php: ProductsById::get_route_response() |
Get a single item. |
src/Internal/DownloadPermissionsAdjuster.php: DownloadPermissionsAdjuster::adjust_download_permissions() |
Create additional download permissions for variations if necessary. |
includes/wc-update-functions.php: wc_update_300_grouped_products() |
Update grouped products for 3.0 |
includes/admin/list-tables/class-wc-admin-list-table-products.php: WC_Admin_List_Table_Products::prepare_row_data() |
Pre-fetch any data for the row each column has access to it. the_product global is there for bw compat. |
includes/admin/class-wc-admin-duplicate-product.php: WC_Admin_Duplicate_Product::duplicate_product_action() |
Duplicate a product action. |
includes/admin/class-wc-admin-duplicate-product.php: WC_Admin_Duplicate_Product::product_duplicate() |
Function to create the duplicate of the product. |
includes/admin/class-wc-admin-duplicate-product.php: WC_Admin_Duplicate_Product::dupe_link() |
Show the “Duplicate” link in admin products list. |
includes/admin/class-wc-admin-post-types.php: WC_Admin_Post_Types::product_data_visibility() |
Output product visibility options. |
includes/admin/class-wc-admin-post-types.php: WC_Admin_Post_Types::bulk_and_quick_edit_save_post() |
Quick and bulk edit saving. |
includes/admin/meta-boxes/class-wc-meta-box-order-downloads.php: WC_Meta_Box_Order_Downloads::output() |
Output the metabox. |
includes/admin/meta-boxes/class-wc-meta-box-product-data.php: WC_Meta_Box_Product_Data::save_variations() |
Save variation meta box data. |
includes/admin/meta-boxes/class-wc-meta-box-coupon-data.php: WC_Meta_Box_Coupon_Data::output() |
Output the metabox. |
includes/admin/meta-boxes/class-wc-meta-box-product-data.php: WC_Meta_Box_Product_Data::output() |
Output the metabox. |
includes/admin/meta-boxes/class-wc-meta-box-product-images.php: WC_Meta_Box_Product_Images::output() |
Output the metabox. |
includes/admin/reports/class-wc-report-stock.php: WC_Report_Stock::column_default() |
Get column value. |
includes/admin/reports/class-wc-report-downloads.php: WC_Report_Downloads::output_report() |
Output the report. |
includes/admin/reports/class-wc-report-downloads.php: WC_Report_Downloads::column_default() |
Get column value. |
includes/admin/reports/class-wc-report-sales-by-product.php: WC_Report_Sales_By_Product::current_filters() |
Output current filters. |
includes/class-wc-embed.php: WC_Embed::the_excerpt() |
Create the excerpt for embedded products – we want to add the buy button to it. |
includes/class-wc-embed.php: WC_Embed::product_buttons() |
Create the button to go to the product page for embedded products. |
includes/class-wc-embed.php: WC_Embed::get_ratings() |
Prints the markup for the rating stars. |
includes/wc-conditional-functions.php: meta_is_product_attribute() |
Returns true when the passed meta name is a product attribute. |
includes/class-wc-shortcodes.php: WC_Shortcodes::product_add_to_cart_url() |
Get the add to cart URL for a product. |
includes/import/abstract-wc-product-importer.php: WC_Product_Importer::set_variation_data() |
Set variation data. |
includes/import/abstract-wc-product-importer.php: WC_Product_Importer::get_product_object() |
Prepare a single product for create or update. |
includes/import/class-wc-product-csv-importer.php: WC_Product_CSV_Importer::import() |
Process importer. |
includes/class-wc-product-grouped.php: WC_Product_Grouped::sync() |
Sync a grouped product with it’s children. These sync functions sync upwards (from child to parent) when the variation is saved. |
includes/legacy/abstract-wc-legacy-product.php: WC_Abstract_Legacy_Product::sync_average_rating() |
Sync product rating. Can be called statically. |
includes/legacy/abstract-wc-legacy-product.php: WC_Abstract_Legacy_Product::sync_rating_count() |
Sync product rating count. Can be called statically. |
includes/legacy/abstract-wc-legacy-product.php: WC_Abstract_Legacy_Product::sync_attributes() |
Sync the variable product’s attributes with the variations. |
includes/legacy/abstract-wc-legacy-product.php: WC_Abstract_Legacy_Product::get_child() |
Returns the child product. |
includes/legacy/abstract-wc-legacy-product.php: WC_Abstract_Legacy_Product::__get() |
Magic __get method for backwards compatibility. Maps legacy vars to new getters. |
includes/legacy/api/v2/class-wc-api-orders.php: WC_API_Orders::set_line_item() |
Create or update a line item |
includes/legacy/api/v2/class-wc-api-products.php: WC_API_Products::clear_product() |
Clear product |
includes/legacy/api/v3/class-wc-api-products.php: WC_API_Products::get_grouped_products_data() |
Get grouped products data |
includes/legacy/api/class-wc-rest-legacy-products-controller.php: WC_REST_Legacy_Products_Controller::save_product_images() |
Save product images. |
includes/legacy/api/class-wc-rest-legacy-products-controller.php: WC_REST_Legacy_Products_Controller::update_post_meta_fields() |
Update post meta fields. |
includes/legacy/api/class-wc-rest-legacy-products-controller.php: WC_REST_Legacy_Products_Controller::delete_post() |
Delete post. |
includes/legacy/api/class-wc-rest-legacy-products-controller.php: WC_REST_Legacy_Products_Controller::prepare_item_for_response() |
Prepare a single product output for response. |
includes/legacy/api/v2/class-wc-api-products.php: WC_API_Products::edit_product() |
Edit a product |
includes/legacy/api/v2/class-wc-api-products.php: WC_API_Products::delete_product() |
Delete a product. |
includes/legacy/api/v2/class-wc-api-products.php: WC_API_Products::get_product_data() |
Get standard product data that applies to every product type |
includes/legacy/api/v2/class-wc-api-products.php: WC_API_Products::get_variation_data() |
Get an individual variation’s data |
includes/legacy/api/v2/class-wc-api-reports.php: WC_API_Reports::get_top_sellers_report() |
Get the top sellers report |
includes/legacy/api/v2/class-wc-api-products.php: WC_API_Products::get_product() |
Get the product for the given ID |
includes/legacy/abstract-wc-legacy-order.php: WC_Abstract_Legacy_Order::get_item_downloads() |
Get the downloadable files for an item in this order. |
includes/class-wc-cart.php: WC_Cart::restore_cart_item() |
Restore a cart item. |
includes/class-wc-cart.php: WC_Cart::add_to_cart() |
Add a product to the cart. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_adjust_price() |
Bulk action – Set Price. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_set() |
Bulk set convenience function. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_toggle() |
Bulk toggle convenience function. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_action_variable_sale_schedule() |
Bulk action – Sale Schedule. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_action_delete_all() |
Bulk action – Delete all. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_action_variable_stock() |
Bulk action – Set Stock. |
includes/class-wc-ajax.php: WC_AJAX::variation_bulk_action_toggle_enabled() |
Bulk action – Toggle Enabled. |
includes/class-wc-ajax.php: WC_AJAX::load_variations() |
Load variations via AJAX. |
includes/class-wc-ajax.php: WC_AJAX::json_search_products() |
Search for products and echo json. |
includes/class-wc-ajax.php: WC_AJAX::link_all_variations() |
Link all variations via ajax function. |
includes/class-wc-ajax.php: WC_AJAX::remove_variations() |
Delete variations via ajax function. |
includes/class-wc-ajax.php: WC_AJAX::feature_product() |
Toggle Featured status of a product from admin. |
includes/class-wc-ajax.php: WC_AJAX::add_to_cart() |
AJAX add to cart. |
includes/class-wc-ajax.php: WC_AJAX::get_variation() |
Get a matching variation based on posted attributes. |
includes/wc-template-functions.php: wc_get_product_class() |
Retrieves the classes for the post div as an array. |
includes/wc-template-functions.php: wc_product_post_class() |
Adds extra post classes for products via the WordPress post_class hook, if used. |
includes/wc-template-functions.php: wc_template_redirect() |
Handle redirects before content is output – hooked into template_redirect so is_page works. |
includes/wc-template-functions.php: wc_setup_product_data() |
When the_post is called, put product data into a global. |
includes/class-wc-cart-session.php: WC_Cart_Session::get_cart_from_session() |
Get the cart data from the PHP session and store it in class variables. |
includes/class-wc-cart-session.php: WC_Cart_Session::populate_cart_from_order() |
Get a cart from an order, if user has permission. |
includes/data-stores/class-wc-product-grouped-data-store-cpt.php: WC_Product_Grouped_Data_Store_CPT::update_prices_from_children() |
Loop over child products and update the grouped product prices. |
includes/data-stores/class-wc-product-variable-data-store-cpt.php: WC_Product_Variable_Data_Store_CPT::read_price_data() |
Get an array of all sale and regular prices from all variations. This is used for example when displaying the price range at variable product level or seeing if the variable product is on sale. |
includes/class-wc-post-data.php: WC_Post_Data::variation_post_link() |
Link to parent products when getting permalink for variation. |
includes/class-wc-post-data.php: WC_Post_Data::deferred_product_sync() |
Sync a product. |
includes/class-wc-form-handler.php: WC_Form_Handler::add_to_cart_action() |
Add to cart action. |
includes/class-wc-form-handler.php: WC_Form_Handler::add_to_cart_handler_variable() |
Handle adding variable products to the cart. |
includes/class-wc-form-handler.php: WC_Form_Handler::update_cart_action() |
Remove from cart/update. |
includes/wc-stock-functions.php: wc_get_low_stock_amount() |
Return low stock amount to determine if notification needs to be sent |
includes/wc-stock-functions.php: wc_trigger_stock_change_notifications() |
After stock change events, triggers emails and adds order notes. |
includes/wc-stock-functions.php: wc_update_product_stock_status() |
Update a product’s stock status. |
includes/wc-stock-functions.php: wc_update_product_stock() |
Update a product’s stock amount. |
includes/wc-product-functions.php: wc_product_force_unique_sku() |
Force a unique SKU. |
includes/wc-product-functions.php: wc_scheduled_sales() |
Function which handles the start and end of scheduled sales via cron. |
includes/widgets/class-wc-widget-recent-reviews.php: WC_Widget_Recent_Reviews::widget() |
Output widget. |
includes/wc-user-functions.php: wc_get_customer_available_downloads() |
Get customer available downloads. |
includes/class-wc-product-variable.php: WC_Product_Variable::sync() |
Sync a variable product with it’s children. These sync functions sync upwards (from child to parent) when the variation is saved. |
includes/class-wc-product-variable.php: WC_Product_Variable::sync_stock_status() |
Sync parent stock status with the status of all children and save. |
includes/class-wc-product-variable.php: WC_Product_Variable::get_available_variations() |
Get an array of available variations for the current product. |
includes/class-wc-product-variable.php: WC_Product_Variable::get_available_variation() |
Returns an array of data for a variation. Used in the add to cart form. |
includes/class-wc-download-handler.php: WC_Download_Handler::download_product() |
Check if we need to download a file and check validity. |
includes/class-wc-comments.php: WC_Comments::clear_transients() |
Ensure product average rating and review count is kept up to date. |
includes/abstracts/abstract-wc-product.php: WC_Product::get_image() |
Returns the main product image. |
includes/class-wc-order-item-product.php: WC_Order_Item_Product::get_product() |
Get the associated product. |
includes/wc-attribute-functions.php: wc_attribute_label() |
Get a product attributes label. |
includes/export/class-wc-product-csv-exporter.php: WC_Product_CSV_Exporter::get_column_value_parent_id() |
Get parent_id value. |
includes/export/class-wc-product-csv-exporter.php: WC_Product_CSV_Exporter::get_column_value_grouped_products() |
Get grouped_products value. |
includes/wc-deprecated-functions.php: get_product() | |
includes/wc-order-functions.php: wc_downloadable_file_permission() |
Grant downloadable product access to the file identified by $download_id. |
src/Checkout/Helpers/ReserveStock.php: ReserveStock::reserve_stock_for_product() |
Reserve stock for a product by inserting rows into the DB. |
packages/woocommerce-admin/src/API/Reports/Orders/DataStore.php: DataStore::include_extended_info() |
Enriches the order data. |
packages/woocommerce-admin/src/API/Reports/Variations/DataStore.php: DataStore::include_extended_info() |
Enriches the product data with attributes specified by the extended_attributes. |
packages/woocommerce-admin/src/API/Reports/Segmenter.php: Segmenter::set_all_segments() |
Fetches all segment ids from db and stores it for later use. |
packages/woocommerce-admin/src/API/Reports/Products/DataStore.php: DataStore::include_extended_info() |
Enriches the product data with attributes specified by the extended_attributes. |
packages/woocommerce-admin/src/API/Reports/Downloads/Controller.php: Controller::prepare_item_for_response() |
Prepare a report object for serialization. |
packages/woocommerce-blocks/src/BlockTypes/FeaturedProduct.php: FeaturedProduct::get_image() |
Returns the main product image URL. |
packages/woocommerce-blocks/src/BlockTypes/FeaturedProduct.php: FeaturedProduct::render() |
Render the Featured Product block. |
includes/rest-api/Controllers/Version3/class-wc-rest-products-controller.php: WC_REST_Products_Controller::prepare_object_for_database() |
Prepare a single product for create or update. |
includes/rest-api/Controllers/Version3/class-wc-rest-product-variations-controller.php: WC_REST_Product_Variations_Controller::prepare_object_for_database() |
Prepare a single variation for create or update. |
includes/rest-api/Controllers/Version1/class-wc-rest-orders-v1-controller.php: WC_REST_Orders_V1_Controller::prepare_line_items() |
Create or update a line item. |
includes/rest-api/Controllers/Version1/class-wc-rest-report-top-sellers-v1-controller.php: WC_REST_Report_Top_Sellers_V1_Controller::get_items() |
Get sales reports. |
includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php: WC_REST_Products_V1_Controller::update_post_meta_fields() |
Update post meta fields. |
includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php: WC_REST_Products_V1_Controller::delete_post() |
Delete post. |
includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php: WC_REST_Products_V1_Controller::delete_item() |
Delete a single item. |
includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php: WC_REST_Products_V1_Controller::get_variation_data() |
Get an individual variation’s data. |
includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php: WC_REST_Products_V1_Controller::prepare_item_for_response() |
Prepare a single product output for response. |
includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php: WC_REST_Products_V1_Controller::prepare_item_for_database() |
Prepare a single product for create or update. |
includes/rest-api/Controllers/Version1/class-wc-rest-products-v1-controller.php: WC_REST_Products_V1_Controller::save_product_images() |
Save product images. |
includes/rest-api/Controllers/Version2/class-wc-rest-product-variations-v2-controller.php: WC_REST_Product_Variations_V2_Controller::prepare_object_for_database() |
Prepare a single variation for create or update. |
includes/rest-api/Controllers/Version2/class-wc-rest-product-variations-v2-controller.php: WC_REST_Product_Variations_V2_Controller::get_object() |
Get object. |
includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php: WC_REST_Products_V2_Controller::prepare_object_for_database() |
Prepare a single product for create or update. |
includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php: WC_REST_Products_V2_Controller::delete_item() |
Delete a single item. |
includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php: WC_REST_Products_V2_Controller::get_object() |
Get object. |
includes/rest-api/Controllers/Version2/class-wc-rest-products-v2-controller.php: WC_REST_Products_V2_Controller::get_attributes() |
Get the attributes for a product or product variation. |
includes/rest-api/Controllers/Version2/class-wc-rest-orders-v2-controller.php: WC_REST_Orders_V2_Controller::prepare_line_items() |
Create or update a line item. |