Edit File by line
/home/zeestwma/richards.../wp-conte.../plugins/woocomme.../src/Admin/API
File: NoteActions.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* REST API Admin Note Action controller
[2] Fix | Delete
*
[3] Fix | Delete
* Handles requests to the admin note action endpoint.
[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
use Automattic\WooCommerce\Admin\Notes\Note;
[11] Fix | Delete
use Automattic\WooCommerce\Admin\Notes\Notes as NotesFactory;
[12] Fix | Delete
[13] Fix | Delete
/**
[14] Fix | Delete
* REST API Admin Note Action controller class.
[15] Fix | Delete
*
[16] Fix | Delete
* @internal
[17] Fix | Delete
* @extends WC_REST_CRUD_Controller
[18] Fix | Delete
*/
[19] Fix | Delete
class NoteActions extends Notes {
[20] Fix | Delete
[21] Fix | Delete
/**
[22] Fix | Delete
* Register the routes for admin notes.
[23] Fix | Delete
*/
[24] Fix | Delete
public function register_routes() {
[25] Fix | Delete
register_rest_route(
[26] Fix | Delete
$this->namespace,
[27] Fix | Delete
'/' . $this->rest_base . '/(?P<note_id>[\d-]+)/action/(?P<action_id>[\d-]+)',
[28] Fix | Delete
array(
[29] Fix | Delete
'args' => array(
[30] Fix | Delete
'note_id' => array(
[31] Fix | Delete
'description' => __( 'Unique ID for the Note.', 'woocommerce' ),
[32] Fix | Delete
'type' => 'integer',
[33] Fix | Delete
),
[34] Fix | Delete
'action_id' => array(
[35] Fix | Delete
'description' => __( 'Unique ID for the Note Action.', 'woocommerce' ),
[36] Fix | Delete
'type' => 'integer',
[37] Fix | Delete
),
[38] Fix | Delete
),
[39] Fix | Delete
array(
[40] Fix | Delete
'methods' => \WP_REST_Server::EDITABLE,
[41] Fix | Delete
'callback' => array( $this, 'trigger_note_action' ),
[42] Fix | Delete
// @todo - double check these permissions for taking note actions.
[43] Fix | Delete
'permission_callback' => array( $this, 'get_item_permissions_check' ),
[44] Fix | Delete
),
[45] Fix | Delete
'schema' => array( $this, 'get_public_item_schema' ),
[46] Fix | Delete
)
[47] Fix | Delete
);
[48] Fix | Delete
}
[49] Fix | Delete
[50] Fix | Delete
/**
[51] Fix | Delete
* Trigger a note action.
[52] Fix | Delete
*
[53] Fix | Delete
* @param WP_REST_Request $request Full details about the request.
[54] Fix | Delete
* @return WP_REST_Request|WP_Error
[55] Fix | Delete
*/
[56] Fix | Delete
public function trigger_note_action( $request ) {
[57] Fix | Delete
$note = NotesFactory::get_note( $request->get_param( 'note_id' ) );
[58] Fix | Delete
[59] Fix | Delete
if ( ! $note ) {
[60] Fix | Delete
return new \WP_Error(
[61] Fix | Delete
'woocommerce_note_invalid_id',
[62] Fix | Delete
__( 'Sorry, there is no resource with that ID.', 'woocommerce' ),
[63] Fix | Delete
array( 'status' => 404 )
[64] Fix | Delete
);
[65] Fix | Delete
}
[66] Fix | Delete
[67] Fix | Delete
$note->set_is_read( true );
[68] Fix | Delete
$note->save();
[69] Fix | Delete
[70] Fix | Delete
$triggered_action = NotesFactory::get_action_by_id( $note, $request->get_param( 'action_id' ) );
[71] Fix | Delete
[72] Fix | Delete
if ( ! $triggered_action ) {
[73] Fix | Delete
return new \WP_Error(
[74] Fix | Delete
'woocommerce_note_action_invalid_id',
[75] Fix | Delete
__( 'Sorry, there is no resource with that ID.', 'woocommerce' ),
[76] Fix | Delete
array( 'status' => 404 )
[77] Fix | Delete
);
[78] Fix | Delete
}
[79] Fix | Delete
[80] Fix | Delete
$triggered_note = NotesFactory::trigger_note_action( $note, $triggered_action );
[81] Fix | Delete
[82] Fix | Delete
$data = $triggered_note->get_data();
[83] Fix | Delete
$data = $this->prepare_item_for_response( $data, $request );
[84] Fix | Delete
$data = $this->prepare_response_for_collection( $data );
[85] Fix | Delete
[86] Fix | Delete
return rest_ensure_response( $data );
[87] Fix | Delete
}
[88] Fix | Delete
}
[89] Fix | Delete
[90] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function