From skillry-optional-specialist
Use when you need to review WordPress, WooCommerce, PHP plugin, theme, checkout, payment, and extension changes.
How this skill is triggered — by the user, by Claude, or both
Slash command
/skillry-optional-specialist:76-wordpress-woocommerce-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Perform a structured security, correctness, and architecture review of WordPress plugins, themes, and WooCommerce extensions. Focus on WordPress-specific attack surfaces (XSS, CSRF, SQLi, privilege escalation) and WooCommerce commerce integrity (order flow, payment hooks, stock sync).
Perform a structured security, correctness, and architecture review of WordPress plugins, themes, and WooCommerce extensions. Focus on WordPress-specific attack surfaces (XSS, CSRF, SQLi, privilege escalation) and WooCommerce commerce integrity (order flow, payment hooks, stock sync).
functions.php, a plugin's main file, REST endpoints, shortcodes, or Gutenberg blocks.$wpdb, $_POST/$_GET, user capability checks, or nonces.woocommerce_*, wc_*) and the behavior needs verification.add_action, add_filter, add_shortcode, register_rest_route.permission_callback.check_ajax_referer() or wp_verify_nonce() before processing data.wp_nonce_field() in forms.permission_callback — __return_true is a red flag.current_user_can('manage_options') or the appropriate capability before executing.manage_woocommerce.is_admin() alone — it is true for AJAX requests too.sanitize_text_field(), sanitize_email(), absint(), wp_kses_post() depending on data type.esc_html(), esc_attr(), esc_url(), wp_kses().$_POST/$_GET/$_REQUEST values.esc_html_e() or wrap with esc_html().$wpdb prepared statements$wpdb->prepare() with %s, %d, %f placeholders.$wpdb->get_results( $wpdb->prepare(...) ) — never string-interpolate user input into SQL.woocommerce_checkout_process → woocommerce_checkout_order_processed → woocommerce_payment_complete).wc_reduce_stock_levels() or WC_Product::set_stock_quantity() — never raw DB writes to _stock.$order->update_status(), not direct wp_update_post().WC_Payment_Gateway and implement process_payment() returning a result array with result and redirect keys.Plugin Name, Version, Requires at least, Requires PHP).load_plugin_textdomain() called on plugins_loaded for i18n.wp_enqueue_scripts / wp_enqueue_style, not inline <script> tags.WC_Product and register via woocommerce_product_class filter.update_post_meta() or $product->update_meta_data() + $product->save().manage_posts_columns.Security:
wp_verify_nonce() or check_ajax_referer().permission_callback.current_user_can() checked before any privileged action.$_POST/$_GET value sanitized before use.$wpdb->query() with unsanitized input — all use $wpdb->prepare().WooCommerce correctness:
WC_Payment_Gateway; process_payment() returns correct array.$order->update_status().$product->save() or update_post_meta().Plugin hygiene:
plugins_loaded.wp_ajax_* frequently skip nonce checks, enabling CSRF against logged-in users.echo $_POST['field']: Echoing unsanitized input into HTML causes stored or reflected XSS.$wpdb->query("SELECT ... WHERE id=$id"): Classic SQL injection. Always use $wpdb->prepare().is_admin() as a capability gate: is_admin() returns true for AJAX requests regardless of user role — pair it with current_user_can().wp_update_post(): Bypasses WC meta cache, causes inconsistency. Use $order->update_meta_data() + $order->save().$wpdb->prefix . 'tablename' — never hardcode wp_.is_checkout(), is_product() to limit scope.$this->init_settings() / $this->process_admin_options() must still be sanitized.Return a structured report with:
npx claudepluginhub fluxonlab/skillry --plugin skillry-optional-specialistProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.