Using jq:
jq -r 'to_entries[] | .key as $k | .value | to_entries | map("\(.key)=\(.value|@json)") | "wp_plugins{\(join(","))}\($k)"' file
or
jq -r 'to_entries[] | .key as $k | .value | to_entries | "wp_plugins{\(map("\(.key)=\(.value|@json)")|join(","))}\($k)"' file
This takes your original JSON file and starts by turning each array entry into a key-value pair using to_entries. The key will be the array index, and the value will be the actual object.
Since we want to create a comma-delimited key-value list with unquoted keys and quoted values, with = between each key and value, we need to process the .value (i.e. the object). We do that by passing it through to_entries again to get a new list of keys and values.
The keys and values are then passed to a string constructor that composes the output in the format you are looking for, prepending the string wp_plugins{ to the start of the comma-delimited list, appending } and the array index to the end.
The output, given the data in the question (when the data is put into an array first):
wp_plugins{name="akismet",status="active",update="none",version="5.0"}0
wp_plugins{name="performance-lab",status="active",update="none",version="1.4.0"}1
A corrected variant that uses a 0 at the end of the output line if the update key is not available, and 1 if it is available:
jq -r '
to_entries[] |
(if .value.update == "available" then 1 else 0 end) as $v |
.value | to_entries |
map("\(.key)=\(.value|@json)") | join(",") |
"wp_plugins{\(.)}\($v)"' file