vikingokft
- 165 skills
- 0 followers
- 2 weeks ago last updated
- ▌
- ▌
- ▌
- ▌ Persona Customer Support · vikingokftManage customer support — track tickets, respond, escalate issues.
- ▌ Recipe Post Mortem Setup · vikingokftCreate a Google Docs post-mortem, schedule a Google Calendar review, and notify via Chat.
- ▌ Recipe Save Email To Doc · vikingokftSave a Gmail message body into a Google Doc for archival or reference.
- ▌ Persona Event Coordinator · vikingokftPlan and manage events — scheduling, invitations, and logistics.
- ▌ Recipe Reschedule Meeting · vikingokftMove a Google Calendar event to a new time and automatically notify all attendees.
- ▌ Gws Workflow Email To Task · vikingokftGoogle Workflow: Convert a Gmail message into a Google Tasks entry.
- ▌ Gws Workflow Weekly Digest · vikingokftGoogle Workflow: Weekly summary: this week's meetings + unread email count.
- ▌ Recipe Create Gmail Filter · vikingokftCreate a Gmail filter to automatically label, star, or categorize incoming messages.
- ▌ Gws Workflow Standup Report · vikingokftGoogle Workflow: Today's meetings + open tasks as a standup summary.
- ▌ Recipe Plan Weekly Schedule · vikingokftReview your Google Calendar week, identify gaps, and add events to fill them.
- ▌ Recipe Share Doc And Notify · vikingokftShare a Google Docs document with edit access and email collaborators the link.
- ▌ Recipe Batch Invite To Event · vikingokftAdd a list of attendees to an existing Google Calendar event and send notifications.
- ▌ Recipe Organize Drive Folder · vikingokftCreate a Google Drive folder structure and move files into the right locations.
- ▌ Recipe Save Email Attachments · vikingokftFind Gmail messages with attachments and save them to a Google Drive folder.
- ▌
- ▌ Gws Modelarmor Sanitize Prompt · vikingokftGoogle Model Armor: Sanitize a user prompt through a Model Armor template.
- ▌ Recipe Copy Sheet For New Month · vikingokftDuplicate a Google Sheets template tab for a new month of tracking.
- ▌ Recipe Create Doc From Template · vikingokftCopy a Google Docs template, fill in content, and share with collaborators.
- ▌ Recipe Label And Archive Emails · vikingokftApply Gmail labels to matching messages and archive them to keep your inbox clean.
- ▌ Gws Modelarmor Sanitize Response · vikingokftGoogle Model Armor: Sanitize a model response through a Model Armor template.
- ▌ Recipe Create Vacation Responder · vikingokftEnable a Gmail out-of-office auto-reply with a custom message and date range.
- ▌ Recipe Generate Report From Sheet · vikingokftRead data from a Google Sheet and create a formatted Google Docs report.
- ▌ Wc Payment Gateway · vikingokftRegister a custom WooCommerce payment gateway — extend WC_Payment_Gateway, declare $id / $title / $supports, implement process_payment returning array(result, redirect), optionally process_refund when refunds is in supports, register via the woocommerce_payment_gateways filter. Canonical gotcha: payment_complete vs update_status — payment_complete runs the paid-order state machine (status, transaction id, session flag, payment-complete action), update_status only changes status. Includes the forgotten WC()->cart->empty_cart() call and Store API payment requirements for Checkout Blocks. Use when integrating/reviewing gateways or debugging "payment succeeded but cart didn't clear" / "order stuck in pending". Triggers on WC_Payment_Gateway, woocommerce_payment_gateways, process_payment, process_refund, payment_complete, get_return_url, woocommerce_payment_complete_order_status, woocommerce_store_api_register_payment_requirements.
- ▌ Wc Shipping Method · vikingokftRegisters a custom WooCommerce shipping method with explicit control over which fields appear in the per-zone settings modal — extend WC_Shipping_Method, declare your fields in init_form_fields (and ONLY those fields, no unset / DOM hacks / CSS hides), set the $supports array to control whether the modal opens (omit 'instance-settings' to suppress it entirely), register via the woocommerce_shipping_methods filter, load the class on woocommerce_shipping_init. Corrects the "this is React, removing fields is hard" misconception — the zone-method modal is Backbone with a PHP-rendered settings_html string; the field list is wholly PHP-controlled. Use when scaffolding a shipping method or when you want a feature-flag-only modal without WC defaults. Triggers on WC_Shipping_Method, woocommerce_shipping_methods, woocommerce_shipping_init, init_form_fields with shipping context, $supports shipping-zones, calculate_shipping, add_rate, or "remove default fields from shipping method".
- ▌ Wc Variations Data · vikingokftRead, query, and write WooCommerce product variations correctly — the WC_Product_Variable (parent) vs WC_Product_Variation (child) class split, the parent's get_variation_prices( $for_display ) cached aggregation and how to bust the wc_var_prices_<id> transient, programmatic variation creation via WC_Product_Variation + set_parent_id + set_attributes + save followed by WC_Product_Variable::sync, the inherited-vs-own variation stock model (parent flag, variation flag, derived stock_status), get_available_variations for frontend variation data, and the $for_display tax-handling parameter that breaks display logic when forgotten. Use when scaffolding plugin code that creates / queries / modifies variations or when debugging stale variation data after programmatic writes. Triggers on WC_Product_Variation, WC_Product_Variable, get_variation_prices, get_available_variations, product_variation post type, wc_var_prices, sync_variation, or programmatic variation creation context.
- ▌ Wp Admin Media Frame · vikingokft bundleOpen the standard WordPress Media Library picker from plugin admin UI with `wp_enqueue_media()` and `wp.media()`. Covers the screen-gated enqueue, `media-editor` dependency, `wp.media( { frame, title, button, library, multiple } )`, `library` filters for type / MIME / uploadedTo / author, `multiple` values `true` and `'add'`, `select` and `open` events, `frame.state().get( 'selection' ).first().toJSON()`, attachment `sizes`, frame caching, pre-selecting existing attachments, and saving attachment IDs instead of URLs. Use for image, file, gallery, logo, avatar, cover, or per-row icon pickers in settings pages, metaboxes, and repeaters.
- ▌ Je Listings Callback · vikingokftRegister a custom Listings callback for JetEngine — the per-field transform fired when a Dynamic Field widget renders meta values (Format date, Format number, Get post title, Convert units, …). Two registration paths are supported. Legacy 3-filter via jet-engine/listings/allowed-callbacks (label), jet-engine/listings/allowed-callbacks-args (control schema), and jet-engine/listing/dynamic-field/callback-args (positional args at runtime). Modern single-call $manager->register_callback($name, $label, $args) hooked on jet-engine/callbacks/register fires the three filters internally for you. Critical contract — the callback identifier you register MUST be a real PHP callable string (a global function name OR `Fully\\Qualified\\Class::method`). Bare static method names like `'unit_converter'` fail JE's is_callable() gate at apply_callback() and the rendered field silently becomes empty. Use when scaffolding a JetEngine companion plugin's listing-field transform, when seeing "callback applied but value disappears" b
- ▌ Wp Admin Settings API · vikingokft bundleBuild plugin admin settings pages with the WordPress Settings API instead of custom form handlers. Covers `register_setting()`, `add_settings_section()`, `add_settings_field()`, `settings_fields()`, `do_settings_sections()`, `add_settings_error()`, `settings_errors()`, `admin_init` registration, `<form method="post" action="options.php">`, `sanitize_callback`, `$option_group` vs `$page`, single-array option storage, tabbed pages, `show_in_rest` schemas, custom option capabilities via `option_page_capability_{$option_group}`, and the mistake of POSTing to your own handler. Use for plugin settings screens, integration config, feature toggles, or any options page that saves to `wp_options`.
- ▌ Gws Workflow Meeting Prep · vikingokftGoogle Workflow: Prepare for your next meeting: agenda, attendees, and linked docs.
- ▌ Vikingo Elementor Atomic · vikingokftElementor V4 atomic widget development patterns for Vikingo plugins. MUST be applied when creating or modifying Elementor widgets, dynamic tags, or editor previews in any Vikingo WordPress plugin — the atomic API (Elementor\Modules\AtomicWidgets) is undocumented and internal, so this skill captures the proven guard patterns (class_exists + experiment check + try/catch), the widget anatomy (define_props_schema, define_atomic_controls, get_atomic_settings computing rendered_html server-side), the Twig template contract, the REST-based live editor preview hydration, prop/control type reference, the post-Elementor-update checklist, and known pitfalls. Triggers on Elementor widget, atomic widget, Atomic_Widget_Base, twig template, dynamic tag, editor preview, e_atomic_elements, Elementor V4, or any vk- plugin Elementor integration.
- ▌ Wcm Access Discounts · vikingokftWooCommerce Memberships access, restriction, drip-content, product-grant, and member-discount playbook. Use when code checks whether a user can view/purchase content or products, changes scheduled access dates, customizes protected/public content, maps parent or variation products that grant membership access, applies member prices, reads original prices around discounts, or contains wc_memberships_user_can, wc_memberships_access_from_time, wc_memberships_user_has_member_discount, wc_memberships_get_member_product_discount, wc_memberships_get_discounted_price, or member discount badge hooks.
- ▌ Wcm Membership Hooks · vikingokftCurated WooCommerce Memberships hook and extension-point map for plugins that build on user memberships, membership plans, status transitions, purchase/free-signup grants, profile fields, REST API, webhooks, members-area templates, CSV import/export, and Woo Subscriptions-linked memberships. Use when the user asks for a Memberships hook list, "where should I hook", membership created/saved, status changed, grant access from order, user membership API, profile fields, member directory, or code contains wc_memberships_, WC_Memberships_User_Membership, WC_Memberships_Membership_Plan, wc_user_membership, wc_membership_plan, wcm-, _subscription_id, wc_memberships_rules, or woocommerce-memberships.
- ▌ Wp Admin Drag And Drop · vikingokft bundleBuild WordPress admin drag-and-drop UI with core's bundled jQuery UI Sortable, Draggable, Droppable, optional `jquery-touch-punch`, `wp-api-fetch`, and `wp-a11y.speak()`. Covers flat reorder lists, connected lists / kanban columns, palette-to-dropzone clones, hierarchical tree indentation, REST order persistence, and keyboard reorder controls. Use when plugin admin pages need repeater row order, builder blocks, rule priority, kanban moves, custom field arrangers, pricing tiers, taxonomy term sort, or any non-React draggable admin UI.
- ▌ Wp Admin Form Controls · vikingokft bundleUse WordPress admin form-control widgets that ship in core, `wp-color-picker`, `jquery-ui-datepicker`, `jquery-ui-autocomplete`, and `wp-pointer`. Covers correct script/style enqueues, the missing jQuery UI datepicker CSS, `wpColorPicker` change / clear callbacks, datepicker `yy-mm-dd` formatting plus strict server sanitization, autocomplete `source` shapes with `response()`, core user/tag suggest, and `wp-pointer` dismissal through `dismiss-wp-pointer`. Use when adding color, date, typeahead, or first-run pointer controls to settings pages, metaboxes, or repeater rows.
- ▌
- ▌ Wc Hpos Compatibility · vikingokftMake a WooCommerce plugin HPOS-compatible (High-Performance Order Storage, default-on in WC 10.x) — declare via FeaturesUtil::declare_compatibility on before_woocommerce_init, replace $wpdb->postmeta / WP_Query order code with wc_get_orders + WC_Order::get_meta / update_meta_data, gate runtime branches on OrderUtil::custom_orders_table_usage_is_enabled, use OrderUtil::get_order_admin_screen for screen IDs while branching order-list hook names by HPOS vs legacy mode. Use when scaffolding an order-touching plugin, auditing existing code for HPOS readiness, or fixing post-WC-10 silent breakage. Triggers on shop_order, get_post_meta with order context, FeaturesUtil, OrderUtil, custom_order_tables, before_woocommerce_init.
- ▌ Wc Shipping Providers · vikingokftRegister a custom WooCommerce shipping provider — extend AbstractShippingProvider and add it via the woocommerce_fulfillment_shipping_providers filter (WC 10.1+). Distinct from shipping methods (rate at checkout) — a provider is a carrier identity (UPS, FedEx, DHL, your custom carrier) used by the Fulfillments system for tracking URLs, tracking-number pattern detection, country-pair support, and the orders-list filter. Required methods get_key / get_name / get_icon / get_tracking_url, with optional shipping-from / shipping-to / try_parse_tracking_number. Registration accepts class names (resolved via the DI container) or pre-built instances, keyed by get_key. Use when integrating a private carrier, fulfillment service, or any tracking-aware shipping identity. Triggers on AbstractShippingProvider, woocommerce_fulfillment_shipping_providers, FulfillmentUtils::get_shipping_providers, "shipping provider" in WooCommerce context, or carrier tracking integration.
- ▌ Wcs Renewal Scheduler · vikingokftSafely integrate with WooCommerce Subscriptions renewal, next-payment scheduling, Action Scheduler events, and retry flow. Shows when to use WC_Subscription::update_dates, update_status, wcs_create_renewal_order, wcs_renewal_order_created, woocommerce_scheduled_subscription_payment, woocommerce_scheduled_subscription_payment_{gateway_id}, woocommerce_subscription_renewal_payment_complete, and payment retry hooks. Use when changing next payment dates, forcing/rescheduling renewals, reacting to failed renewals, building gateway recurring charge logic, or debugging missing/duplicate renewal orders.
- ▌ Wcs Subscription Hooks · vikingokftCurated WooCommerce Subscriptions hook and extension-point map for choosing the right action/filter around WC_Subscription creation, status transitions, date changes, renewal orders, scheduled payments, payment retries, gateway events, switching, gifting, related orders, REST/API responses, and account/admin UI. Use when the user asks for a Woo Subscriptions hook list, "where should I hook", "after renewal", "subscription status changed", or when code contains WC_Subscription, wcs_create_subscription, wcs_create_renewal_order, woocommerce_scheduled_subscription_payment, wcs_renewal_order_created, payment_retry, wcs_get_subscriptions, wcsg_, subscription_switch, _subscription_switch_data, _recipient_user, wcsg_recipient, or subscription switching.
- ▌ Wp Action Scheduler · vikingokft bundleDesign and review Action Scheduler jobs in WordPress plugins using Action Scheduler 3.9.x public APIs - async, single, recurring, and cron-expression actions; action_scheduler_init load timing; hook/args/group naming; unique and priority parameters; idempotent callbacks; chunked workloads; activation/deactivation cleanup; WooCommerce-bundled or standalone dependency usage; admin and WP-CLI debugging; queue runner limits; and safe operational troubleshooting. Use when a plugin schedules background jobs with as_enqueue_async_action, as_schedule_single_action, as_schedule_recurring_action, as_schedule_cron_action, as_get_scheduled_actions, or integrates with WooCommerce background queues.
- ▌ Wp Plugin Bootstrap · vikingokftScaffolds and reviews the main entry-point PHP file of a WordPress plugin — header (with Requires Plugins for WP 6.5+), ABSPATH guard, file/path/url/version constants, Composer + PSR-4 with manual spl_autoload_register fallback, register_activation_hook requirements check, Plugin class instantiation on plugins_loaded, and the WP 6.7+ rule that translation functions must not trigger before after_setup_theme. Use when scaffolding a new plugin or reviewing its main file. Triggers on Plugin Name headers, register_activation_hook, Requires Plugins, spl_autoload_register, plugins_loaded, or composer.json at the plugin root.
- ▌ Wp Plugin Lifecycle · vikingokftDesigns and reviews the three lifecycle events of a WordPress plugin — activation (one-shot setup, dbDelta, add_option seeding, cron schedule, cap seeding), deactivation (reversible cleanup, cron clear via wp_unschedule_hook, never delete user data), and uninstall.php (standalone file, WP_UNINSTALL_PLUGIN guard, no autoloader, full data removal). Multisite-aware patterns using the $network_wide / $network_deactivating callback args, plus the recommendation against register_uninstall_hook in favor of uninstall.php. Use when scaffolding a plugin or debugging ghost cron events / orphan options. Triggers on register_activation_hook, register_deactivation_hook, uninstall.php, WP_UNINSTALL_PLUGIN, dbDelta, wp_unschedule_hook, switch_to_blog.
- ▌ Wp Plugin Presenter · vikingokft bundleDesign and review native presenter classes in WordPress plugins without requiring better-data - converting DTOs or domain objects into REST arrays, admin table rows, JS config payloads, email variables, and public view models with allowlisted fields, context methods, redaction by default, locale/date/number formatting, no DTO mutation, and correct WordPress escaping boundaries. Use when adding FooPresenter, response mappers, admin-row arrays, wp_send_json payloads, rest_ensure_response data, wp_add_inline_script config, or when code returns raw DTOs, WP_Post, WC_Order, get_object_vars, json_encode, or unescaped HTML from controllers.
- ▌ Wp Admin Postbox Sortable · vikingokftWire up WordPress postboxes on custom plugin admin pages with collapse, drag sorting, Screen Options visibility, and core persistence. Covers `add_meta_box()`, `do_meta_boxes()`, the `postbox` script, `postboxes.add_postbox_toggles( pageId )`, the `.meta-box-sortables` / `.postbox` / `.hndle` DOM contract, and the two nonce fields plugins forget, `closedpostboxesnonce` and `meta-box-order-nonce`. Use when adding collapsible admin boxes, draggable metabox layouts, or Screen Options show/hide behavior to a custom plugin admin screen; use raw `jquery-ui-sortable` instead for non-postbox repeater rows.
- ▌ Recipe Create Expense Tracker · vikingokftSet up a Google Sheets spreadsheet for tracking expenses with headers and initial entries.
- ▌ Recipe Share Folder With Team · vikingokftShare a Google Drive folder and all its contents with a list of collaborators.
- ▌ Recipe Sync Contacts To Sheet · vikingokftExport Google Contacts directory to a Google Sheets spreadsheet.
- ▌ Wc Action Scheduler Jobs · vikingokftQueue and run WooCommerce background jobs with Action Scheduler. Covers `as_enqueue_async_action`, `as_schedule_single_action`, `as_schedule_recurring_action`, `as_schedule_cron_action`, `as_has_scheduled_action`, `as_next_scheduled_action`, `as_unschedule_action`, `as_unschedule_all_actions`, groups, scalar args, WP-CLI runner, activation/deactivation scheduling, batching, idempotency, and the important WC 10.8 DB-store gotcha that `$unique` prevents another pending/running action with the same hook and group, not one per argument set. Use when moving slow order/product/customer work out of requests or status hooks.
- ▌ Wc Cart Checkout Classic · vikingokftCustomize the classic WooCommerce cart and shortcode checkout with `woocommerce_add_cart_item_data`, `woocommerce_get_item_data`, `woocommerce_before_calculate_totals`, `woocommerce_cart_calculate_fees`, `woocommerce_checkout_fields`, `woocommerce_after_checkout_validation`, `woocommerce_checkout_update_order_meta`, and `woocommerce_checkout_create_order_line_item`. Covers cart-key merging, absolute price mutation, fees, classic checkout fields, order-line meta vs order meta, HPOS-safe order saves, and the Checkout Block / Store API boundary. Use when adding product options, custom cart data, fees, classic checkout fields, validation, or debugging missing/duplicated cart/order item data.
- ▌ Wc Customer And Sessions · vikingokftUse WooCommerce's customer and session APIs correctly — WC ships its own session handler (WC_Session_Handler, single wp_woocommerce_sessions table for both guests and logged-in users) and its own customer object (WC_Customer via WC()->customer). Avoid $_SESSION, direct setcookie, and user_meta for guest/session state. Use WC()->session->set/get for ephemeral visitor data, WC()->customer->get_billing_* for active customer context including guests, and new WC_Customer($user_id) for one-off loads. WC()->session auto-inits only on frontend/admin-ajax; REST, cron, and WP-CLI must call wc_load_cart() explicitly, while Store API cart/checkout routes can use Cart-Token sessions. Use when storing per-visitor state, reading billing data, or debugging session loss across cache/REST/cron. Triggers on WC_Session, WC_Session_Handler, WC_Customer, WC()->session, WC()->customer, wp_woocommerce_sessions.
- ▌ Wc Product Search Select · vikingokftBuilds a WooCommerce-style AJAX product search select (the selectWoo / wooselect dropdown) — class="wc-product-search" + the data-action attribute pointing to woocommerce_json_search_products (products only) or woocommerce_json_search_products_and_variations (products AND variations, often the right choice). Pre-selected items rendered server-side as <option selected> via wc_get_product() + get_formatted_name(); WC's wc-enhanced-select script auto-enqueued on WC admin screens, explicit enqueue required on non-WC pages. Solves the "load 20k products into a select" antipattern AI assistants commonly emit. Use when adding a product picker meta box, a custom WC admin page selector, or any UI where the user must search and pick from many products. Triggers on wc-product-search, woocommerce_json_search_products, woocommerce_json_search_products_and_variations, selectWoo, wc-enhanced-select, "select2 products in WooCommerce", or product-picker meta box scaffolding.
- ▌ Wp Plugin Architecture · vikingokftDesigns and reviews the internal architecture of a WordPress plugin — folder layout, PSR-4 one-class-per-file discipline, Schema/Constants placement, composition-root vs singleton decisions, conditional asset enqueueing, script config via wp_add_inline_script, and prefixed custom-hook naming. Use when scaffolding includes/src, reviewing class organization, asset enqueue code, repeated strings, or "should I make this a singleton" decisions.
- ▌ Wp Rocket Cache Invalidation · vikingokftProgrammatically clear WP Rocket cache from a third-party plugin / theme when data changes — the public rocket_clean_* function family (rocket_clean_post, rocket_clean_files, rocket_clean_term, rocket_clean_user, rocket_clean_home, rocket_clean_minify, rocket_clean_cache_busting, rocket_clean_domain, rocket_clean_cache_dir). Critical detection rule — WP Rocket is a PAID plugin not on Packagist; always feature-detect via function_exists('rocket_clean_post') OR defined('WP_ROCKET_VERSION') before calling, since not every site has it. Never raw-unlink the cache directory or call wp_cache_flush() expecting it to clear WP Rocket — wp_cache_flush is WP object cache, WP Rocket is FILE cache. The before_*_clean_* / after_*_clean_* action lifecycle hooks fire around every clean — useful for audit logging, monitoring, custom invalidation chains. Use when integrating cache invalidation in a companion plugin, WC integration, custom data plugin. Triggers on rocket_clean_, before_rocket_clean, after_rocket_clean, "WP Rocke
- ▌ Je Query Builder Custom Type · vikingokftRegister a custom Query type for JetEngine's Query Builder — extend \Jet_Engine\Query_Builder\Queries\Base_Query for the runtime query class, extend \Jet_Engine\Query_Builder\Query_Editor\Base_Query for the editor component, then hook BOTH register actions — jet-engine/query-builder/queries/register (factory) for the runtime, jet-engine/query-builder/query-editor/register for the editor UI. Five abstract methods on Base_Query — _get_items(), get_items_total_count(), get_items_page_count(), get_items_pages_count(), get_current_items_page(). Built-in cache via get_cached_data() / update_query_cache(). Custom queries participate in JE 3.8+ MCP tool exposure and the frontend query inspector automatically. Use when scaffolding a custom query type (HPOS WC orders, third-party API source, custom DB table) for JetEngine listings, dynamic widgets, or REST API endpoints.
- ▌ Wp Plugin Assets Loading · vikingokftRegister and enqueue WordPress plugin scripts/styles with modern loading behavior, especially WP 7.0 classic-script module dependencies, script module translations, fetchpriority support, script module args, footer placement, inline style limits, and removal of legacy IE conditional asset support. Covers wp_enqueue_script args strategy/in_footer/fetchpriority/module_dependencies, wp_register_script_module / wp_enqueue_script_module args, wp_set_script_module_translations, wp_script_add_data, wp_style_add_data, dependency handles, conditional enqueueing on the right hook, and avoiding global frontend/admin asset bloat. Use when adding or reviewing plugin JS/CSS enqueue code.
- ▌ Wc Order Lifecycle And Items · vikingokftWork safely with WooCommerce order statuses, payment completion, status hooks, order items, line-item meta, totals, and stock side effects. Covers `payment_complete()` vs `update_status()`, `woocommerce_order_status_*` hook ordering and args, `woocommerce_order_status_changed`, `woocommerce_order_payment_status_changed`, `WC_Order_Item_Product`, `add_item()`, `calculate_totals()`, stock reduction/restoration hooks, HPOS-safe CRUD, and why not to instantiate base `WC_Order_Item`. Use when reacting to orders, adding/editing items, changing statuses, provisioning, fulfillment, stock logic, or debugging paid orders that skipped lifecycle side effects.
- ▌ Wc Stripe Add Payment Method · vikingokftWooCommerce Stripe Gateway skill for the fragile My Account payment-methods and add-payment-method flows. Use when editing or replacing Woo account templates, payment-methods.php, form-add-payment-method.php, Stripe card/token UI, saved cards, SetupIntent, Payment Element/UPE, billing details, WC payment tokens, customer account payment-method endpoints, Subscriptions change-payment-method compatibility, or code contains add_payment_method, add-payment-method, form#add_payment_method, payment_method_stripe, wc-stripe-upe-element, wc-stripe-setup-intent, stripe_source, wc_stripe_create_setup_intent, wc_stripe_upe_params, wc-stripe-payment-method, or woocommerce-gateway-stripe.
- ▌ Wc Variations Pricing Filters · vikingokftMutate WooCommerce variation prices via filters — pick the right layer (woocommerce_product_get_price for simple/non-variation products, woocommerce_product_variation_get_price for variations, the woocommerce_variation_prices_* family for the parent min/max aggregation that feeds the catalog "From X to Y" range), and the critical step of filtering woocommerce_get_variation_prices_hash whenever your price logic depends on context outside the default cache key (user role, custom toggle, time of day) — otherwise one user's filtered price gets cached and served to everyone. Use for role-based pricing, time-based discounts, or "filter variation prices but the min/max range doesn't update" debugging. Triggers on woocommerce_product_get_price, woocommerce_product_variation_get_price, woocommerce_variation_prices_*, woocommerce_get_variation_prices_hash, wc_var_prices.
- ▌ Je Dynamic Visibility Condition · vikingokftRegister a custom Dynamic Visibility condition for JetEngine — extend \Jet_Engine\Modules\Dynamic_Visibility\Conditions\ Base, hook jet-engine/modules/dynamic-visibility/conditions/register, call $manager->register_condition( new MyCondition() ). The 3 abstract methods are get_id() / get_name() / check( $args = [] ); override get_group() to assign a UI group, is_for_fields() / need_value_detect() / need_type_detect() to control where the condition appears, get_custom_controls() to add per-condition UI controls. The check() $args includes type ('show' or 'hide'), field / field_raw, value, data_type ('chars' / 'numeric' / 'datetime' / 'date' / 'list'), and context ('default' or 'current_listing'). Important — $args['type'] is the user's show/hide intent; condition must invert its boolean accordingly. Use get_current_value() helper for context-aware meta resolution (handles WP_Post, WP_User, WP_Term, WP_Comment, listing macros). Use when scaffolding a JetEngine companion plugin's visibility conditions.
- ▌ Wcs Data Model Switching Gifting · vikingokftWooCommerce Subscriptions data model, switcher, and gifting reference for exact order type names, product type slugs, subscription meta keys, schedule/date keys, related-order relation meta, switch cart data, switch order data, switched item types/meta, proration hooks, and WCS Gifting recipient storage. Use when code reads or writes shop_subscription, subscription, variable-subscription, subscription_variation, _billing_period, _schedule_next_payment, _subscription_switch_data, _subscription_switch, subscription_switch, _switched_subscription_item_id, wcsg_gift_recipients_email, _recipient_user, _recipient_user_email_address, wcsg_recipient, or when an agent needs the full WooCommerce Subscriptions switcher/gifting flow.
- ▌ Wcm Data Model Subscriptions Link · vikingokftWooCommerce Memberships storage and relationship map for membership plan CPTs, user membership CPTs, post statuses, plan/user membership meta keys, rule storage, profile-field storage, order grant meta, and WooCommerce Subscriptions-linked memberships. Use when code reads or writes wc_membership_plan, wc_user_membership, wcm-* statuses, wc_memberships_rules, _subscription_id, _has_installment_plan, _free_trial_end_date, membership plan access meta, user membership dates, product/order grant meta, or when an agent needs exact Memberships CPT/meta names and the Memberships-Subscriptions relation.
- ▌ Wp Rocket Cache Rejection And Filters · vikingokftCustomize WP Rocket behavior from a third-party plugin / theme via filter hooks — exclude URIs / cookies / user agents / REST API namespaces from caching, configure CDN URL rewrites, extend lazy load handling, override capability requirements, hook into Action Scheduler integration. Critical guidance — rocket_cache_reject_uri takes URI patterns (regex-like), NOT full URLs; rocket_cache_reject_* filters all expect arrays. The rocket_buffer filter is the FULL HTML output filter — extremely powerful but dangerous; one fatal error in the callback breaks every cached page until WP Rocket is disabled. Use when extending WP Rocket's default rules, NOT for cache invalidation (see wp-rocket-cache-invalidation). Triggers on rocket_cache_reject_, rocket_cdn_, do_rocket_lazyload, rocket_buffer, rocket_capacity, "exclude from WP Rocket cache".
- ▌ Persona Project Manager · vikingokftCoordinates projects by tracking tasks in Sheets, scheduling meetings in Calendar, and sharing documents via Drive and Gmail.
- ▌ Recipe Block Focus Time · vikingokftCreates recurring focus time blocks on Google Calendar to protect deep work hours.
- ▌ Recipe Create Task List · vikingokftCreates a new Google Tasks list and populates it with initial tasks using the gws CLI.
- ▌ Recipe Email Drive Link · vikingokftShares a Google Drive file with a recipient and emails them the link with a custom message.
- ▌ Recipe Find Large Files · vikingokftIdentify large Google Drive files consuming storage quota by listing files sorted by size.
- ▌ Stripe Best Practices · vikingokft bundleGuides Stripe integration decisions: API selection, Connect platform setup, billing, Treasury, and security best practices for building or reviewing Stripe integrations.
- ▌ Wp Plugin Cron · vikingokftImplements scheduled tasks and background jobs in WordPress plugins, covering native WP cron and Action Scheduler.
- ▌ Gws Gmail Watch · vikingokftWatches a Gmail mailbox for new emails and streams them as NDJSON, with options for Pub/Sub setup, filtering by labels, and output to files.
- ▌ Gws Script Push · vikingokftUploads local script files to a Google Apps Script project, replacing all existing files.
- ▌ Gws Sheets Read · vikingokftReads cell values from a Google Sheets spreadsheet by ID and range using the gws CLI.
- ▌ Vikingo Stilus · vikingokftApplies the Vikingo house style to all Hungarian user-facing text: informal tone, typography, terminology, message patterns, and i18n code techniques.
- ▌ Wp AI Client · vikingokftIntegrates WordPress 7.0's WP AI Client for provider-agnostic AI generation, covering prompt building, model preferences, structured JSON, media generation, and safe feature gating.
- ▌ Wp Utf8 Text · vikingokftHandle UTF-8 and text encoding safely in WordPress plugins, especially on WP 6.9+ where wp_is_valid_utf8(), wp_scrub_utf8(), and noncharacter helpers replace older seems_utf8-style checks. Covers when to validate, scrub, reject, or preserve invalid bytes; wp_check_invalid_utf8 behavior; XML/JSON/feed/export.
- ▌ React Components · vikingokft bundleConverts Stitch designs into modular Vite and React components using system-level networking and AST-based validation.
- ▌ Stitch Upload To Stitch · vikingokft bundleUploads local images, mockups, and HTML files to a Stitch project via a Python script, bypassing MCP base64 token limits.
- ▌ Gws Drive Upload · vikingokftUploads a file to Google Drive with automatic MIME type detection and optional parent folder or custom filename.
- ▌ Gws Events Renew · vikingokftRenews or reactivates Google Workspace Events subscriptions, either individually by name or all subscriptions expiring within a specified time window.
- ▌ Gws Gmail Triage · vikingokftShows a summary of unread Gmail messages, including sender, subject, and date, with optional search query and label display.
- ▌ Persona It Admin · vikingokftMonitors security and configures Google Workspace, including reviewing audit logs and enforcing Drive sharing policies.
- ▌ Upgrade Stripe · vikingokftUpgrade Stripe API versions and SDKs across server-side, Stripe.js, and mobile platforms with a structured checklist.
- ▌ Wp I18N Audit · vikingokftAudits WordPress plugin or theme PHP code for internationalization (i18n) correctness, including text-domain consistency, escaped translation helpers, placeholder usage, plurals, context, and text-domain loading. Produces a severity-ranked report of issues to fix before release.
- ▌ Stitch Extract Design Md · vikingokft bundleAnalyzes frontend source code to extract a comprehensive design system document (DESIGN.md) capturing colors, typography, spacing, and component patterns without building or rendering the app.
- ▌ Gws Admin Reports · vikingokftGenerates audit logs and usage reports for Google Workspace accounts via the Admin SDK Reports API.
- ▌ Gws Gmail Forward · vikingokftForwards a Gmail message to new recipients, with options for body notes, attachments, CC/BCC, HTML formatting, drafts, and dry runs.
- ▌ Gws Sheets Append · vikingokftAppends a row or multiple rows to a Google Sheets spreadsheet using the gws CLI, with support for simple values or JSON arrays and optional target range.
- ▌ Persona Sales Ops · vikingokftManage sales workflows by tracking deals, scheduling calls, and handling client communications through Google Workspace tools.
- ▌ Persona Team Lead · vikingokftRun team standups, coordinate tasks, and communicate via Google Workspace tools.
- ▌ Stripe Projects · vikingokftProvisions third-party services and retrieves API keys using the Stripe Projects CLI plugin, with catalog search and project initialization.
- ▌ Vikingo Szabvany · vikingokftEnforces the Vikingo Studio standard for WordPress plugins and repos: naming taxonomy, plugin headers, folder structure, versioning, release flow, private update channel, admin UI rules, security baseline, and pre-release checklist.
- ▌ Wc Store API · vikingokftBuild against the WooCommerce Store API for shopper-facing products, cart, checkout, and headless carts, including route selection, nonce and cart-token handling, extension data, and payment requirements.
- ▌ Wp Query Cache · vikingokftGuides WordPress plugin developers in using salted query cache helpers on WP 6.9+, covering affected cache groups, invalidation, and when to prefer core query APIs over direct cache writes.
- ▌ Persona Researcher · vikingokftOrganize research by managing references, notes, and collaboration across Google Drive, Docs, Sheets, and Gmail.
- ▌ Stripe Directory · vikingokftFinds businesses, software, and service providers for a given industry or workflow using Stripe Directory, and can purchase MPP-supported services with user approval.
- ▌ Wp Presence API · vikingokftPoints developers to the canonical WordPress Presence API sources and explains its ephemeral-table-plus-TTL architectural pattern, so they avoid inventing postmeta-based presence implementations.
- ▌ Stitch Extract Static HTML · vikingokft bundleCaptures a self-contained static HTML file from a running web app or React components by inlining CSS and images, with strategies for both simple snapshots and interactive captures.