Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Admin/API
File: Coupons.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* REST API Coupons Controller
[2] Fix | Delete
*
[3] Fix | Delete
* Handles requests to /coupons/*
[4] Fix | Delete
*/
[5] Fix | Delete
[6] Fix | Delete
namespace Automattic\WooCommerce\Admin\API;
[7] Fix | Delete
[8] Fix | Delete
defined( 'ABSPATH' ) || exit;
[9] Fix | Delete
[10] Fix | Delete
/**
[11] Fix | Delete
* Coupons controller.
[12] Fix | Delete
*
[13] Fix | Delete
* @internal
[14] Fix | Delete
* @extends WC_REST_Coupons_Controller
[15] Fix | Delete
*/
[16] Fix | Delete
class Coupons extends \WC_REST_Coupons_Controller {
[17] Fix | Delete
[18] Fix | Delete
/**
[19] Fix | Delete
* Endpoint namespace.
[20] Fix | Delete
*
[21] Fix | Delete
* @var string
[22] Fix | Delete
*/
[23] Fix | Delete
protected $namespace = 'wc-analytics';
[24] Fix | Delete
[25] Fix | Delete
/**
[26] Fix | Delete
* Get the query params for collections.
[27] Fix | Delete
*
[28] Fix | Delete
* @return array
[29] Fix | Delete
*/
[30] Fix | Delete
public function get_collection_params() {
[31] Fix | Delete
$params = parent::get_collection_params();
[32] Fix | Delete
$params['search'] = array(
[33] Fix | Delete
'description' => __( 'Limit results to coupons with codes matching a given string.', 'woocommerce' ),
[34] Fix | Delete
'type' => 'string',
[35] Fix | Delete
'validate_callback' => 'rest_validate_request_arg',
[36] Fix | Delete
);
[37] Fix | Delete
return $params;
[38] Fix | Delete
}
[39] Fix | Delete
[40] Fix | Delete
[41] Fix | Delete
/**
[42] Fix | Delete
* Add coupon code searching to the WC API.
[43] Fix | Delete
*
[44] Fix | Delete
* @param WP_REST_Request $request Request data.
[45] Fix | Delete
* @return array
[46] Fix | Delete
*/
[47] Fix | Delete
protected function prepare_objects_query( $request ) {
[48] Fix | Delete
$args = parent::prepare_objects_query( $request );
[49] Fix | Delete
[50] Fix | Delete
if ( ! empty( $request['search'] ) ) {
[51] Fix | Delete
$args['search'] = $request['search'];
[52] Fix | Delete
$args['s'] = false;
[53] Fix | Delete
}
[54] Fix | Delete
[55] Fix | Delete
return $args;
[56] Fix | Delete
}
[57] Fix | Delete
[58] Fix | Delete
/**
[59] Fix | Delete
* Get a collection of posts and add the code search option to WP_Query.
[60] Fix | Delete
*
[61] Fix | Delete
* @param WP_REST_Request $request Full details about the request.
[62] Fix | Delete
* @return WP_Error|WP_REST_Response
[63] Fix | Delete
*/
[64] Fix | Delete
public function get_items( $request ) {
[65] Fix | Delete
add_filter( 'posts_where', array( __CLASS__, 'add_wp_query_search_code_filter' ), 10, 2 );
[66] Fix | Delete
$response = parent::get_items( $request );
[67] Fix | Delete
remove_filter( 'posts_where', array( __CLASS__, 'add_wp_query_search_code_filter' ), 10 );
[68] Fix | Delete
return $response;
[69] Fix | Delete
}
[70] Fix | Delete
[71] Fix | Delete
/**
[72] Fix | Delete
* Add code searching to the WP Query
[73] Fix | Delete
*
[74] Fix | Delete
* @internal
[75] Fix | Delete
* @param string $where Where clause used to search posts.
[76] Fix | Delete
* @param object $wp_query WP_Query object.
[77] Fix | Delete
* @return string
[78] Fix | Delete
*/
[79] Fix | Delete
public static function add_wp_query_search_code_filter( $where, $wp_query ) {
[80] Fix | Delete
global $wpdb;
[81] Fix | Delete
[82] Fix | Delete
$search = $wp_query->get( 'search' );
[83] Fix | Delete
if ( $search ) {
[84] Fix | Delete
$code_like = '%' . $wpdb->esc_like( $search ) . '%';
[85] Fix | Delete
$where .= $wpdb->prepare( "AND {$wpdb->posts}.post_title LIKE %s", $code_like );
[86] Fix | Delete
}
[87] Fix | Delete
[88] Fix | Delete
return $where;
[89] Fix | Delete
}
[90] Fix | Delete
}
[91] Fix | Delete
[92] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function