Files
assets
i18n
includes
abstracts
admin
helper
importers
list-tables
marketplace-suggestions
meta-boxes
notes
plugin-updates
reports
class-wc-admin-report.php
class-wc-report-coupon-usage.php
class-wc-report-customer-list.php
class-wc-report-customers.php
class-wc-report-downloads.php
class-wc-report-low-in-stock.php
class-wc-report-most-stocked.php
class-wc-report-out-of-stock.php
class-wc-report-sales-by-category.php
class-wc-report-sales-by-date.php
class-wc-report-sales-by-product.php
class-wc-report-stock.php
class-wc-report-taxes-by-code.php
class-wc-report-taxes-by-date.php
settings
views
class-wc-admin-addons.php
class-wc-admin-api-keys-table-list.php
class-wc-admin-api-keys.php
class-wc-admin-assets.php
class-wc-admin-attributes.php
class-wc-admin-customize.php
class-wc-admin-dashboard-setup.php
class-wc-admin-dashboard.php
class-wc-admin-duplicate-product.php
class-wc-admin-exporters.php
class-wc-admin-help.php
class-wc-admin-importers.php
class-wc-admin-log-table-list.php
class-wc-admin-menus.php
class-wc-admin-meta-boxes.php
class-wc-admin-notices.php
class-wc-admin-permalink-settings.php
class-wc-admin-pointers.php
class-wc-admin-post-types.php
class-wc-admin-profile.php
class-wc-admin-reports.php
class-wc-admin-settings.php
class-wc-admin-setup-wizard.php
class-wc-admin-status.php
class-wc-admin-taxonomies.php
class-wc-admin-webhooks-table-list.php
class-wc-admin-webhooks.php
class-wc-admin.php
wc-admin-functions.php
wc-meta-box-functions.php
blocks
cli
customizer
data-stores
emails
export
gateways
import
integrations
interfaces
legacy
libraries
log-handlers
payment-tokens
queue
rest-api
shipping
shortcodes
theme-support
tracks
traits
walkers
wccom-site
widgets
class-wc-ajax.php
class-wc-api.php
class-wc-auth.php
class-wc-autoloader.php
class-wc-background-emailer.php
class-wc-background-updater.php
class-wc-breadcrumb.php
class-wc-cache-helper.php
class-wc-cart-fees.php
class-wc-cart-session.php
class-wc-cart-totals.php
class-wc-cart.php
class-wc-checkout.php
class-wc-cli.php
class-wc-comments.php
class-wc-countries.php
class-wc-coupon.php
class-wc-customer-download-log.php
class-wc-customer-download.php
class-wc-customer.php
class-wc-data-exception.php
class-wc-data-store.php
class-wc-datetime.php
class-wc-deprecated-action-hooks.php
class-wc-deprecated-filter-hooks.php
class-wc-discounts.php
class-wc-download-handler.php
class-wc-emails.php
class-wc-embed.php
class-wc-form-handler.php
class-wc-frontend-scripts.php
class-wc-geo-ip.php
class-wc-geolite-integration.php
class-wc-geolocation.php
class-wc-https.php
class-wc-install.php
class-wc-integrations.php
class-wc-log-levels.php
class-wc-logger.php
class-wc-meta-data.php
class-wc-order-factory.php
class-wc-order-item-coupon.php
class-wc-order-item-fee.php
class-wc-order-item-meta.php
class-wc-order-item-product.php
class-wc-order-item-shipping.php
class-wc-order-item-tax.php
class-wc-order-item.php
class-wc-order-query.php
class-wc-order-refund.php
class-wc-order.php
class-wc-payment-gateways.php
class-wc-payment-tokens.php
class-wc-post-data.php
class-wc-post-types.php
class-wc-privacy-background-process.php
class-wc-privacy-erasers.php
class-wc-privacy-exporters.php
class-wc-privacy.php
class-wc-product-attribute.php
class-wc-product-download.php
class-wc-product-external.php
class-wc-product-factory.php
class-wc-product-grouped.php
class-wc-product-query.php
class-wc-product-simple.php
class-wc-product-variable.php
class-wc-product-variation.php
class-wc-query.php
class-wc-rate-limiter.php
class-wc-regenerate-images-request.php
class-wc-regenerate-images.php
class-wc-register-wp-admin-settings.php
class-wc-rest-authentication.php
class-wc-rest-exception.php
class-wc-session-handler.php
class-wc-shipping-rate.php
class-wc-shipping-zone.php
class-wc-shipping-zones.php
class-wc-shipping.php
class-wc-shortcodes.php
class-wc-structured-data.php
class-wc-tax.php
class-wc-template-loader.php
class-wc-tracker.php
class-wc-validation.php
class-wc-webhook.php
class-woocommerce.php
wc-account-functions.php
wc-attribute-functions.php
wc-cart-functions.php
wc-conditional-functions.php
wc-core-functions.php
wc-coupon-functions.php
wc-deprecated-functions.php
wc-formatting-functions.php
wc-notice-functions.php
wc-order-functions.php
wc-order-item-functions.php
wc-page-functions.php
wc-product-functions.php
wc-rest-functions.php
wc-stock-functions.php
wc-template-functions.php
wc-template-hooks.php
wc-term-functions.php
wc-update-functions.php
wc-user-functions.php
wc-webhook-functions.php
wc-widget-functions.php
lib
packages
sample-data
src
templates
vendor
composer.json
license.txt
readme.txt
uninstall.php
woocommerce.php
woocommerce/includes/admin/reports/class-wc-report-out-of-stock.php
2021-12-10 12:03:04 +00:00

59 lines
1.6 KiB
PHP

<?php
/**
* WC_Report_Out_Of_Stock.
*
* @package WooCommerce\Admin\Reports
*/
defined( 'ABSPATH' ) || exit;
if ( ! class_exists( 'WC_Report_Stock' ) ) {
require_once dirname( __FILE__ ) . '/class-wc-report-stock.php';
}
/**
* WC_Report_Out_Of_Stock class.
*/
class WC_Report_Out_Of_Stock extends WC_Report_Stock {
/**
* No items found text.
*/
public function no_items() {
esc_html_e( 'No out of stock products found.', 'woocommerce' );
}
/**
* Get Products matching stock criteria.
*
* @param int $current_page Current page number.
* @param int $per_page How many results to show per page.
*/
public function get_items( $current_page, $per_page ) {
global $wpdb;
$this->max_items = 0;
$this->items = array();
$stock = absint( max( get_option( 'woocommerce_notify_no_stock_amount' ), 0 ) );
$query_from = apply_filters(
'woocommerce_report_out_of_stock_query_from',
$wpdb->prepare(
"
FROM {$wpdb->posts} as posts
INNER JOIN {$wpdb->wc_product_meta_lookup} AS lookup ON posts.ID = lookup.product_id
WHERE 1=1
AND posts.post_type IN ( 'product', 'product_variation' )
AND posts.post_status = 'publish'
AND lookup.stock_quantity <= %d
",
$stock
)
);
$this->items = $wpdb->get_results( $wpdb->prepare( "SELECT SQL_CALC_FOUND_ROWS posts.ID as id, posts.post_parent as parent {$query_from} ORDER BY posts.post_title DESC LIMIT %d, %d;", ( $current_page - 1 ) * $per_page, $per_page ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
$this->max_items = $wpdb->get_var( 'SELECT FOUND_ROWS();' ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
}
}