Skip to content

fix(cli): pass action parameter in Purge send_request - #1029

Open
faisalahammad wants to merge 1 commit into
litespeedtech:devfrom
faisalahammad:fix/963-cli-purge-missing-action
Open

faisalahammad wants to merge 1 commit into
litespeedtech:devfrom
faisalahammad:fix/963-cli-purge-missing-action

Conversation

@faisalahammad

@faisalahammad faisalahammad commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

WP-CLI purge commands fail with HTTP 400 because send_request does not include the required action parameter when making requests to admin-ajax.php. This change adds 'action' => 'litespeed_ajax' and uses add_query_arg() to format query parameters into the GET request URL string.

Fixes #963

Changes

cli/purge.cls.php

Before:

	private function send_request( $action, $extra = array() ) {
		$data = array(
			Router::ACTION => $action,
			Router::NONCE => wp_create_nonce( $action ),
		);
		if ( ! empty( $extra ) ) {
			$data = array_merge( $data, $extra );
		}

		$url = admin_url( 'admin-ajax.php' );
		WP_CLI::debug( 'URL is ' . $url );

		$out = WP_CLI\Utils\http_request( 'GET', $url, $data );
		return $out;
	}

After:

	private function send_request( $action, $extra = array() ) {
		$data = array(
			'action'       => 'litespeed_ajax',
			Router::ACTION => $action,
			Router::NONCE  => wp_create_nonce( $action ),
		);
		if ( ! empty( $extra ) ) {
			$data = array_merge( $data, $extra );
		}

		$url = add_query_arg( $data, admin_url( 'admin-ajax.php' ) );
		WP_CLI::debug( 'URL is ' . $url );

		$out = WP_CLI\Utils\http_request( 'GET', $url );
		return $out;
	}

Why: WordPress admin-ajax.php requires an action parameter in $_REQUEST. Passing 'action' => 'litespeed_ajax' and building query arguments with add_query_arg() ensures parameters are properly passed on GET requests.

Testing

Test 1: WP-CLI Purge All

  1. Run wp litespeed-purge all
    Result: works as expected, returns success status.

@timotei-litespeed

Copy link
Copy Markdown
Contributor

@faisalahammad please use branch dev as base
Thank you

- Add action => litespeed_ajax to send_request data array
- Use add_query_arg for GET request parameter formatting
- Fix network_list call arguments in blog method

Fixes litespeedtech#963
@faisalahammad
faisalahammad changed the base branch from master to dev August 7, 2026 18:25
@faisalahammad
faisalahammad force-pushed the fix/963-cli-purge-missing-action branch from a129f9f to 2beb318 Compare August 7, 2026 18:33
@faisalahammad

Copy link
Copy Markdown
Contributor Author

Updated base branch to dev and rebased branch onto upstream/dev.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LiteSpeed\CLI\Purge::send_request always fails due to missing action

2 participants