ShahiLanding

WP-CLI Command Reference

ShahiLandin provides comprehensive WP-CLI commands for managing landing pages, experiments, and analytics from the command line. This is ideal for automation, bulk operations, and server administration.

Installation & Requirements

Prerequisites

    1. WP-CLI installed and configured
    2. WordPress 6.0 or higher
    3. ShahiLandin plugin activated
    4. PHP 7.4 or higher
    5. Verifying WP-CLI Access

      `bash
      wp shahilandin –help
      `

      If installed correctly, you’ll see a list of available commands.

      Command Structure

      All ShahiLandin commands follow this pattern:

      `bash
      wp shahilandin [] [–=]
      `

      Available Commands

    6. list – List all landing pages
    7. get – Get details of a specific landing page
    8. create – Create a new landing page
    9. update – Update an existing landing page
    10. delete – Delete a landing page
    11. duplicate – Duplicate a landing page
    12. stats – Get statistics for a landing page
    13. template-usage – Report template usage
    14. experiments – Manage A/B test experiments
    15. Landing Page Commands

      List Landing Pages

      Display all landing pages in a formatted table.

      Syntax:
      `bash
      wp shahilandin list [–status=] [–format=]
      `

      Options:

    16. --status= – Filter by post status
    17. – Values: publish, draft, pending, private, any
      – Default: any

    18. --format= – Output format
    19. – Values: table, csv, json, yaml
      – Default: table

      Examples:

      `bash

      List all landing pages in table format

      wp shahilandin list

      List only published pages

      wp shahilandin list –status=publish

      Export all landing pages to JSON

      wp shahilandin list –format=json > landings.json

      Export published pages to CSV

      wp shahilandin list –status=publish –format=csv > published.csv
      `

      Output:
      `
      +——+——————-+———+——-+————–+——————+———————+
      | ID | Title | Status | Views | Conversions | Conversion Rate | Date |
      +——+——————-+———+——-+————–+——————+———————+
      | 123 | Summer Sale 2025 | publish | 5432 | 271 | 4.99% | 2025-11-15 10:23:45 |
      | 124 | Product Launch | draft | 0 | 0 | 0.00% | 2025-11-20 14:12:33 |
      +——+——————-+———+——-+————–+——————+———————+
      `

      Get Landing Page Details

      Retrieve detailed information about a specific landing page.

      Syntax:
      `bash
      wp shahilandin get [–format=]
      `

      Arguments:

    20. – The landing page ID (required)
    21. Options:

    22. --format= – Output format (table, json, yaml)
    23. Examples:

      `bash

      Get details for landing page 123

      wp shahilandin get 123

      Get details in JSON format

      wp shahilandin get 123 –format=json

      Get details and pipe to file

      wp shahilandin get 123 –format=yaml > landing-123.yaml
      `

      Output:
      `
      +——————+——————————–+
      | Field | Value |
      +——————+——————————–+
      | ID | 123 |
      | Title | Summer Sale 2025 |
      | Slug | summer-sale-2025 |
      | Status | publish |
      | URL | https://example.com/landing/…|
      | Views | 5432 |
      | Conversions | 271 |
      | Conversion Rate | 4.99% |
      | Created | 2025-11-15 10:23:45 |
      | Modified | 2025-11-28 09:15:22 |
      +——————+——————————–+
      `

      Create Landing Page

      Create a new landing page via command line.

      Syntax:
      `bash
      wp shahilandin create –title= [–status=<status>] [–slug=<slug>] [–html=<html>] [–css=<css>]<br /> <code>`</code></p><p><strong>Options</strong>:</p><li><code>--title=<title></code> – Landing page title (required)</li><li><code>--status=<status></code> – Post status (default: <code>draft</code>)</li><p> – Values: <code>publish</code>, <code>draft</code>, <code>pending</code>, <code>private</code></p><li><code>--slug=<slug></code> – URL slug (auto-generated if omitted)</li><li><code>--html=<html></code> – HTML content</li><li><code>--css=<css></code> – CSS content</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Create a simple draft landing page<br /></h2><p>wp shahilandin create –title=”My Landing Page”</p><h2>Create and publish immediately<br /></h2><p>wp shahilandin create –title=”Black Friday Sale” –status=publish –slug=black-friday</p><h2>Create with HTML content<br /></h2><p>wp shahilandin create –title=”Custom Page” –html=”</p><div class='hero'>Welcome!</div><p>“</p><h2>Create with both HTML and CSS<br /></h2><p>wp shahilandin create –title=”Styled Page” –html=”</p><section class='hero'>Content</section><p>” –css=”.hero { background: #333; }”</p><h2>Create from file<br /></h2><p>wp shahilandin create –title=”Imported Page” –html=”$(cat landing.html)” –css=”$(cat styles.css)”<br /> <code>`</code></p><p><strong>Success Output</strong>:<br /> <code>`</code><br /> Success: Landing page created with ID: 125<br /> View at: https://example.com/landing/my-landing-page<br /> <code>`</code></p><h3>Update Landing Page<br /></h3><p>Update an existing landing page’s properties.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin update <id> [–title=<title>] [–status=<status>] [–slug=<slug>]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The landing page ID (required)</li><p><strong>Options</strong>:</p><li><code>--title=<title></code> – New title</li><li><code>--status=<status></code> – New status</li><li><code>--slug=<slug></code> – New URL slug</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Update title<br /></h2><p>wp shahilandin update 123 –title=”Updated Title”</p><h2>Publish a draft<br /></h2><p>wp shahilandin update 123 –status=publish</p><h2>Change URL slug<br /></h2><p>wp shahilandin update 123 –slug=new-slug-2025</p><h2>Update multiple fields<br /></h2><p>wp shahilandin update 123 –title=”Final Title” –status=publish –slug=final-slug<br /> <code>`</code></p><p><strong>Success Output</strong>:<br /> <code>`</code><br /> Success: Landing page 123 updated successfully.<br /> <code>`</code></p><h3>Delete Landing Page<br /></h3><p>Delete a landing page (move to trash or permanently delete).</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin delete <id> [–force]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The landing page ID (required)</li><p><strong>Flags</strong>:</p><li><code>--force</code> – Skip trash and permanently delete</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Move to trash<br /></h2><p>wp shahilandin delete 123</p><h2>Permanently delete<br /></h2><p>wp shahilandin delete 123 –force<br /> <code>`</code></p><p><strong>Success Output</strong>:<br /> <code>`</code><br /> Success: Landing page 123 moved to trash.<br /> <code>`</code></p><p>Or with <code>--force</code>:<br /> <code>`</code><br /> Success: Landing page 123 permanently deleted.<br /> <code>`</code></p><h3>Duplicate Landing Page<br /></h3><p>Create an exact copy of an existing landing page.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin duplicate <id><br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The landing page ID to duplicate (required)</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Duplicate landing page 123<br /></h2><p>wp shahilandin duplicate 123<br /> <code>`</code></p><p><strong>Success Output</strong>:<br /> <code>`</code><br /> Success: Landing page duplicated. New ID: 126<br /> Edit at: https://example.com/wp-admin/post.php?post=126&action=edit<br /> <code>`</code></p><p><strong>What Gets Duplicated</strong>:</p><li>Title (with “Copy” appended)</li><li>HTML content</li><li>CSS content</li><li>Head assets (fonts, meta tags, scripts)</li><li>Rendering mode</li><li>All post meta</li><p><strong>What Doesn’t Get Duplicated</strong>:</p><li>Analytics data (views, conversions)</li><li>URL slug (auto-generated)</li><li>Post status (always set to draft)</li><li>Experiment relationships</li><h3>Get Landing Page Statistics<br /></h3><p>Retrieve analytics data for a specific landing page.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin stats <id> [–format=<format>]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The landing page ID (required)</li><p><strong>Options</strong>:</p><li><code>--format=<format></code> – Output format (table, json, yaml)</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>View statistics<br /></h2><p>wp shahilandin stats 123</p><h2>Export stats to JSON<br /></h2><p>wp shahilandin stats 123 –format=json</p><h2>Get stats for multiple pages (bash loop)<br /></h2><p>for id in 123 124 125; do<br /> wp shahilandin stats $id –format=json >> all-stats.json<br /> done<br /> <code>`</code></p><p><strong>Output</strong>:<br /> <code>`</code><br /> +——————+——–+<br /> | Metric | Value |<br /> +——————+——–+<br /> | views | 5432 |<br /> | conversions | 271 |<br /> | conversion_rate | 4.99 |<br /> | bounce_rate | 45.2 |<br /> | avg<em>time</em>on_page | 125 |<br /> +——————+——–+<br /> <code>`</code></p><h3>Report Template Usage<br /></h3><p>Analyze which templates are being used across all landing pages.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin template-usage [–format=<format>]<br /> <code>`</code></p><p><strong>Options</strong>:</p><li><code>--format=<format></code> – Output format (table, csv, json, yaml)</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>View template usage<br /></h2><p>wp shahilandin template-usage</p><h2>Export to CSV for reporting<br /></h2><p>wp shahilandin template-usage –format=csv > template-usage.csv<br /> <code>`</code></p><p><strong>Output</strong>:<br /> <code>`</code><br /> +———————-+——-+<br /> | Template | Count |<br /> +———————-+——-+<br /> | lead-generation | 45 |<br /> | product-launch | 32 |<br /> | webinar-registration | 28 |<br /> | (unknown) | 12 |<br /> +———————-+——-+</p><p>Total landing pages: 117<br /> Pages with template metadata: 105<br /> Pages without template metadata: 12<br /> <code>`</code></p><h2>Experiment Commands<br /></h2><p>Manage A/B testing experiments via WP-CLI.</p><h3>Create Experiment<br /></h3><p>Create a new A/B test experiment by duplicating a landing page as a variant.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin experiments create <id> [–name=<name>]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The original landing page ID (required)</li><p><strong>Options</strong>:</p><li><code>--name=<name></code> – Name for the variant (default: “Variant A”)</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Create experiment with default name<br /></h2><p>wp shahilandin experiments create 123</p><h2>Create with custom name<br /></h2><p>wp shahilandin experiments create 123 –name=”Green Button Test”</p><h2>Create multiple variants<br /></h2><p>wp shahilandin experiments create 123 –name=”Variant A”<br /> wp shahilandin experiments create 123 –name=”Variant B”<br /> <code>`</code></p><p><strong>Success Output</strong>:<br /> <code>`</code><br /> Success: Experiment variant created with ID: 127<br /> Edit at: https://example.com/wp-admin/post.php?post=127&action=edit<br /> <code>`</code></p><h3>List Experiment Variants<br /></h3><p>List all variants for a given landing page.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin experiments list <id> [–format=<format>]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The original landing page ID (required)</li><p><strong>Options</strong>:</p><li><code>--format=<format></code> – Output format (table, csv, json, yaml)</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>List variants<br /></h2><p>wp shahilandin experiments list 123</p><h2>Export to JSON<br /></h2><p>wp shahilandin experiments list 123 –format=json<br /> <code>`</code></p><p><strong>Output</strong>:<br /> <code>`</code><br /> +—–+——————-+—————————+——-+————-+——————+<br /> | ID | Name | Title | Views | Conversions | Conversion Rate |<br /> +—–+——————-+—————————+——-+————-+——————+<br /> | 127 | Green Button Test | Summer Sale 2025 (Variant)| 2716 | 149 | 5.48% |<br /> | 128 | Red Button Test | Summer Sale 2025 (Variant)| 2716 | 122 | 4.49% |<br /> +—–+——————-+—————————+——-+————-+——————+<br /> <code>`</code></p><h3>Get Experiment Statistics<br /></h3><p>Retrieve detailed statistics for an experiment including all variants.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin experiments stats <id> [–format=<format>]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The original landing page ID (required)</li><p><strong>Options</strong>:</p><li><code>--format=<format></code> – Output format (table, json, yaml)</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>View experiment stats<br /></h2><p>wp shahilandin experiments stats 123</p><h2>Export to JSON for analysis<br /></h2><p>wp shahilandin experiments stats 123 –format=json > experiment-123.json<br /> <code>`</code></p><p><strong>Output</strong>:<br /> <code>`</code><br /> +———-+—–+——————-+——-+————-+——————+<br /> | Type | ID | Name | Views | Conversions | Conversion Rate |<br /> +———-+—–+——————-+——-+————-+——————+<br /> | Original | 123 | Summer Sale 2025 | 5432 | 271 | 4.99% |<br /> | Variant | 127 | Green Button Test | 2716 | 149 | 5.48% |<br /> | Variant | 128 | Red Button Test | 2716 | 122 | 4.49% |<br /> +———-+—–+——————-+——-+————-+——————+</p><p>Experiment Status: Active<br /> <code>`</code></p><h3>Determine Experiment Winner<br /></h3><p>Get the winning variant based on conversion rate.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin experiments winner <id><br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The original landing page ID (required)</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Find the winner<br /></h2><p>wp shahilandin experiments winner 123<br /> <code>`</code></p><p><strong>Output</strong>:<br /> <code>`</code><br /> Success: Winner: Green Button Test (ID: 127)<br /> Conversions: 149<br /> Conversion Rate: 5.48%<br /> <code>`</code></p><h3>Stop Experiment<br /></h3><p>Stop an active experiment and optionally declare a winner.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin experiments stop <id> [–winner=<winner_id>]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The original landing page ID (required)</li><p><strong>Options</strong>:</p><li><code>--winner=<winner_id></code> – Declare a specific variant as the winner</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Stop experiment without declaring winner<br /></h2><p>wp shahilandin experiments stop 123</p><h2>Stop and declare winner<br /></h2><p>wp shahilandin experiments stop 123 –winner=127<br /> <code>`</code></p><p><strong>Success Output</strong>:<br /> <code>`</code><br /> Success: Experiment stopped successfully.<br /> Winner set to: 127<br /> <code>`</code></p><h3>Delete Experiment Variants<br /></h3><p>Remove all variants associated with an experiment.</p><p><strong>Syntax</strong>:<br /> <code>`</code>bash<br /> wp shahilandin experiments delete-variants <id> [–yes]<br /> <code>`</code></p><p><strong>Arguments</strong>:</p><li><code><id></code> – The original landing page ID (required)</li><p><strong>Flags</strong>:</p><li><code>--yes</code> – Skip confirmation prompt</li><p><strong>Examples</strong>:</p><p><code>`</code>bash</p><h2>Delete variants with confirmation<br /></h2><p>wp shahilandin experiments delete-variants 123</p><h2>Delete without confirmation (automation-friendly)<br /></h2><p>wp shahilandin experiments delete-variants 123 –yes<br /> <code>`</code></p><p><strong>Output</strong>:<br /> <code>`</code><br /> Are you sure you want to delete 2 variant(s)? [y/n] y<br /> Success: 2 variant(s) deleted successfully.<br /> <code>`</code></p><h2>Bulk Operations<br /></h2><h3>Batch Creating Landing Pages<br /></h3><p>Create multiple landing pages from a CSV file:</p><p><strong>CSV Format</strong> (<code>landings.csv</code>):<br /> <code>`</code>csv<br /> title,status,slug,html,css<br /> “Summer Sale”,”publish”,”summer-sale”,”</p><div>Sale!</div><p>“,”.hero{color:red}”<br /> “Product Launch”,”draft”,”product”,”</p><div>New Product</div><p>“,””<br /> <code>`</code></p><p><strong>Script</strong>:<br /> <code>`</code>bash<br /> #!/bin/bash<br /> while IFS=, read -r title status slug html css; do<br /> # Skip header row<br /> if [ “$title” = “title” ]; then continue; fi</p><p> wp shahilandin create \<br /> –title=”$title” \<br /> –status=”$status” \<br /> –slug=”$slug” \<br /> –html=”$html” \<br /> –css=”$css”<br /> done < landings.csv <code>`</code></p><h3>Batch Publishing Drafts<br /></h3><p>Publish all draft landing pages:</p><p><code>`</code>bash</p><h2>Get all draft IDs and publish them<br /></h2><p>wp shahilandin list –status=draft –format=csv –fields=ID | tail -n +2 | while read id; do<br /> wp shahilandin update $id –status=publish<br /> done<br /> <code>`</code></p><h3>Export All Landing Pages<br /></h3><p>Export complete data for all landing pages:</p><p><code>`</code>bash<br /> #!/bin/bash</p><h2>Create export directory<br /></h2><p>mkdir -p landing-exports</p><h2>Export list<br /></h2><p>wp shahilandin list –format=json > landing-exports/list.json</p><h2>Export each landing page individually<br /></h2><p>wp shahilandin list –format=csv –fields=ID | tail -n +2 | while read id; do<br /> wp shahilandin get $id –format=json > “landing-exports/landing-$id.json”<br /> wp shahilandin stats $id –format=json > “landing-exports/stats-$id.json”<br /> done</p><p>echo “Export complete: landing-exports/”<br /> <code>`</code></p><h3>Cleanup Unused Variants<br /></h3><p>Delete experiment variants that have zero views:</p><p><code>`</code>bash</p><h2>Find and delete variants with no views<br /></h2><p>wp shahilandin list –format=json | jq -r ‘.[] | select(.Views == “0”) | .ID’ | while read id; do<br /> echo “Deleting landing page $id (zero views)”<br /> wp shahilandin delete $id –force<br /> done<br /> <code>`</code></p><h2>Automation Examples<br /></h2><h3>Daily Stats Report<br /></h3><p>Send daily email with landing page statistics:</p><p><code>`</code>bash<br /> #!/bin/bash</p><h2>daily-stats.sh<br /></h2><p>REPORT_FILE=”/tmp/landing-stats-$(date +%Y%m%d).txt”</p><p>echo “ShahiLandin Daily Statistics Report – $(date)” > $REPORT_FILE<br /> echo “=========================================” >> $REPORT_FILE<br /> echo “” >> $REPORT_FILE</p><p>wp shahilandin list –format=table >> $REPORT_FILE</p><h2>Email the report<br /></h2><p>mail -s “Landing Pages Daily Report” admin@example.com < $REPORT_FILE <code>`</code></p><p>Add to crontab:<br /> <code>`</code>cron<br /> 0 8 <em> </em> * /path/to/daily-stats.sh<br /> <code>`</code></p><h3>Auto-Create Experiment Variants<br /></h3><p>Automatically create variants for new landing pages:</p><p><code>`</code>bash<br /> #!/bin/bash</p><h2>Watch for new published landing pages and create test variants<br /></h2><h2>Get landing pages created in the last hour<br /></h2><p>wp post list –post<em>type=shahi</em>landing –post<em>status=publish –format=csv –fields=ID,post</em>date | \<br /> awk -F, -v date=”$(date -d ‘1 hour ago’ ‘+%Y-%m-%d %H:%M:%S’)” ‘$2 > date {print $1}’ | \<br /> tail -n +2 | while read id; do</p><p> echo “Creating experiment variant for landing $id”<br /> wp shahilandin experiments create $id –name=”Auto-Generated Variant”<br /> done<br /> <code>`</code></p><h3>Backup Landing Pages<br /></h3><p>Regular backup of all landing page content:</p><p><code>`</code>bash<br /> #!/bin/bash</p><h2>backup-landings.sh<br /></h2><p>BACKUP_DIR=”/backups/shahilandin/$(date +%Y%m%d)”<br /> mkdir -p “$BACKUP_DIR”</p><h2>Export all landing pages<br /></h2><p>wp shahilandin list –format=json > “$BACKUP_DIR/landings.json”</p><h2>Export individual pages with full details<br /></h2><p>wp shahilandin list –format=csv –fields=ID | tail -n +2 | while read id; do<br /> wp post get $id –format=json > “$BACKUP_DIR/post-$id.json”<br /> done</p><h2>Compress backup<br /></h2><p>tar -czf “$BACKUP<em>DIR.tar.gz” “$BACKUP</em>DIR”<br /> rm -rf “$BACKUP_DIR”</p><p>echo “Backup complete: $BACKUP_DIR.tar.gz”<br /> <code>`</code></p><h2>Error Handling<br /></h2><h3>Common Errors<br /></h3><p><strong>Error: Landing page not found</strong><br /> <code>`</code><br /> Error: Landing page not found.<br /> <code>`</code><br /> <strong>Solution</strong>: Verify the ID exists with <code>wp shahilandin list</code></p><p><strong>Error: Title is required</strong><br /> <code>`</code><br /> Error: Title is required.<br /> <code>`</code><br /> <strong>Solution</strong>: Always provide <code>--title</code> when creating landing pages</p><p><strong>Error: Invalid post status</strong><br /> <code>`</code><br /> Error: Invalid parameter(s): status<br /> <code>`</code><br /> <strong>Solution</strong>: Use valid status values: <code>publish</code>, <code>draft</code>, <code>pending</code>, <code>private</code></p><h3>Exit Codes<br /></h3><p>WP-CLI commands return standard exit codes:</p><li><code>0</code> – Success</li><li><code>1</code> – Generic error</li><li><code>2</code> – Invalid arguments</li></ul><p><strong>Example usage in scripts</strong>:<br /> <code>`</code>bash<br /> if wp shahilandin get 123 > /dev/null 2>&1; then<br /> echo “Landing page exists”<br /> else<br /> echo “Landing page not found”<br /> fi<br /> <code>`</code></p><h2>Performance Considerations<br /></h2><h3>Batch Operations<br /></h3><p>When performing bulk operations:</p><li><strong>Use <code>--format=json</code> or <code>--format=csv</code></strong> for machine parsing</li><li><strong>Limit concurrent operations</strong> to avoid overloading the database</li><li><strong>Use transactions</strong> where possible (via custom scripts)</li><h3>Large Datasets<br /></h3><p>For sites with thousands of landing pages:</p><p><code>`</code>bash</p><h2>Process in batches<br /></h2><p>BATCH_SIZE=100<br /> TOTAL=$(wp shahilandin list –format=count)</p><p>for ((i=0; i<$TOTAL; i+=$BATCH_SIZE)); do wp shahilandin list --format=csv --fields=ID | \ tail -n +2 | head -n $BATCH_SIZE | while read id; do # Process each ID wp shahilandin stats $id done echo "Processed batch $((i/$BATCH_SIZE + 1))" sleep 2 # Rate limiting done <code>`</code></p><h2>Tips & Best Practices<br /></h2><li><strong>Always backup before bulk operations</strong>: Use <code>wp db export</code> first</li><li><strong>Test commands in staging</strong>: Validate on non-production data</li><li><strong>Use <code>--dry-run</code> where available</strong>: Preview changes before applying</li><li><strong>Log command output</strong>: Redirect to files for audit trails</li><li><strong>Automate repetitive tasks</strong>: Create shell scripts for common workflows</li><li><strong>Monitor performance</strong>: Track command execution time for optimization</li><li><strong>Use JSON format for parsing</strong>: Easier to process programmatically</li></ol><p>—</p><p>For REST API automation, see the REST API Reference article.</p></div><div class="sa-article-share" data-share data-share-url="https://shahisoft.store/index.php/knowledge-base/wp-cli-command-reference/" data-share-title="WP-CLI Command Reference"><h3 class="sa-share-title"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="18" cy="5" r="3"/> <circle cx="6" cy="12" r="3"/> <circle cx="18" cy="19" r="3"/> <line x1="8.59" y1="13.51" x2="15.42" y2="17.49"/> <line x1="15.41" y1="6.51" x2="8.59" y2="10.49"/> </svg> Share this article</h3><div class="sa-share-buttons"> <button type="button" class="sa-share-btn sa-share-copy" data-share-copy> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"/> <path d="M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"/> </svg> Copy link </button> <a class="sa-share-btn sa-share-twitter" data-share-target="twitter" href="#" rel="noopener" target="_blank"> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/> </svg> Twitter </a> <a class="sa-share-btn sa-share-linkedin" data-share-target="linkedin" href="#" rel="noopener" target="_blank"> <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"> <path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/> </svg> LinkedIn </a> <a class="sa-share-btn sa-share-email" data-share-target="email" href="#"> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/> <polyline points="22,6 12,13 2,6"/> </svg> Email </a></div><p class="sa-share-feedback" hidden data-share-feedback role="status" aria-live="polite"></p></div><section class="sa-article-rating" data-kb-rating data-article-id="3736" data-nonce="fef13c3977"><div class="sa-rating-header"><h3 class="sa-rating-title">Was this article helpful?</h3><p class="sa-rating-subtitle">Help us improve our documentation</p></div><div class="sa-rating-buttons"> <button type="button" class="sa-rating-btn sa-rating-positive" data-rating="helpful"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M14 9V5a3 3 0 00-3-3l-4 9v11h11.28a2 2 0 002-1.7l1.38-9a2 2 0 00-2-2.3zM7 22H4a2 2 0 01-2-2v-7a2 2 0 012-2h3"/> </svg> <span class="sa-rating-label">Yes, it helped</span> <span class="sa-rating-count" data-rating-count="helpful">0</span> </button> <button type="button" class="sa-rating-btn sa-rating-negative" data-rating="not_helpful"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M10 15v4a3 3 0 003 3l4-9V2H5.72a2 2 0 00-2 1.7l-1.38 9a2 2 0 002 2.3zm7-13h2.67A2.31 2.31 0 0122 4v7a2.31 2.31 0 01-2.33 2H17"/> </svg> <span class="sa-rating-label">Not quite</span> <span class="sa-rating-count" data-rating-count="not_helpful">0</span> </button></div><div class="sa-rating-feedback-box" hidden data-rating-feedback> <label for="sa-feedback-textarea" class="sa-feedback-label"> Tell us what we missed (optional) </label><textarea id="sa-feedback-textarea" rows="4" placeholder="Share your thoughts so we can improve this guide…" data-feedback-field class="sa-feedback-textarea" ></textarea><div class="sa-feedback-actions"> <button type="button" class="sa-btn sa-btn-primary" data-submit-feedback> Send feedback </button> <button type="button" class="sa-btn sa-btn-ghost" data-skip-feedback> Skip </button></div></div><p class="sa-rating-message" hidden data-rating-message role="status" aria-live="polite"></p></section><section class="sa-related-articles"><h2 class="sa-related-title"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M4 19.5A2.5 2.5 0 016.5 17H20"/> <path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z"/> </svg> Related articles</h2><div class="sa-related-grid"><article class="sa-related-card"> <a href="https://shahisoft.store/index.php/knowledge-base/rest-api-reference/" class="sa-related-link"><div class="sa-related-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/> <path d="M14 2v6h6"/> <line x1="16" y1="13" x2="8" y2="13"/> <line x1="16" y1="17" x2="8" y2="17"/> <line x1="10" y1="9" x2="8" y2="9"/> </svg></div><div class="sa-related-content"><h3 class="sa-related-card-title">REST API Reference</h3><p class="sa-related-excerpt">ShahiLandin provides a comprehensive REST API for programmatic access to landing pages, analytics, and experiments.…</p><div class="sa-related-meta"> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="12" cy="12" r="10"/> <path d="M12 6v6l4 2"/> </svg> Updated 2 weeks ago </span> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/> <circle cx="12" cy="12" r="3"/> </svg> 2 </span></div></div> </a></article><article class="sa-related-card"> <a href="https://shahisoft.store/index.php/knowledge-base/debugging-and-logging/" class="sa-related-link"><div class="sa-related-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/> <path d="M14 2v6h6"/> <line x1="16" y1="13" x2="8" y2="13"/> <line x1="16" y1="17" x2="8" y2="17"/> <line x1="10" y1="9" x2="8" y2="9"/> </svg></div><div class="sa-related-content"><h3 class="sa-related-card-title">Debugging and Logging</h3><p class="sa-related-excerpt">Effective debugging and logging are essential for maintaining a healthy ShahiAssist installation. This guide covers…</p><div class="sa-related-meta"> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="12" cy="12" r="10"/> <path d="M12 6v6l4 2"/> </svg> Updated 2 weeks ago </span> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/> <circle cx="12" cy="12" r="3"/> </svg> 5 </span></div></div> </a></article><article class="sa-related-card"> <a href="https://shahisoft.store/index.php/knowledge-base/migration-and-upgrades/" class="sa-related-link"><div class="sa-related-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/> <path d="M14 2v6h6"/> <line x1="16" y1="13" x2="8" y2="13"/> <line x1="16" y1="17" x2="8" y2="17"/> <line x1="10" y1="9" x2="8" y2="9"/> </svg></div><div class="sa-related-content"><h3 class="sa-related-card-title">Migration and Upgrades</h3><p class="sa-related-excerpt">Managing data migration and version upgrades is critical for maintaining system stability and user experience.…</p><div class="sa-related-meta"> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="12" cy="12" r="10"/> <path d="M12 6v6l4 2"/> </svg> Updated 2 weeks ago </span> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/> <circle cx="12" cy="12" r="3"/> </svg> 3 </span></div></div> </a></article><article class="sa-related-card"> <a href="https://shahisoft.store/index.php/knowledge-base/hooks-and-filters/" class="sa-related-link"><div class="sa-related-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/> <path d="M14 2v6h6"/> <line x1="16" y1="13" x2="8" y2="13"/> <line x1="16" y1="17" x2="8" y2="17"/> <line x1="10" y1="9" x2="8" y2="9"/> </svg></div><div class="sa-related-content"><h3 class="sa-related-card-title">Hooks and Filters</h3><p class="sa-related-excerpt">Extend and customize ComplyFlow using WordPress hooks and filters.</p><div class="sa-related-meta"> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="12" cy="12" r="10"/> <path d="M12 6v6l4 2"/> </svg> Updated 2 weeks ago </span> <span class="sa-related-meta-item"> <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/> <circle cx="12" cy="12" r="3"/> </svg> 3 </span></div></div> </a></article></div></section><section class="sa-article-help-cta"><div class="sa-help-cta-content"><div class="sa-help-cta-icon"> <svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <circle cx="12" cy="12" r="10"/> <path d="M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3"/> <line x1="12" y1="17" x2="12.01" y2="17"/> </svg></div><div class="sa-help-cta-text"><h3>Still need help?</h3><p>Our support team is ready to assist you with personalized guidance for your workspace.</p></div> <a href="https://shahisoft.store/index.php/submit-ticket/" class="sa-help-cta-btn"> <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/> </svg> Submit a support ticket </a></div></section></main></div></div></article><footer class="site-footer"><div data-elementor-type="wp-post" data-elementor-id="1911" class="elementor elementor-1911"><div class="elementor-element elementor-element-41eb144 e-con-full e-flex tcg-animation-none e-con e-parent" data-id="41eb144" data-element_type="container" data-settings="{"background_background":"classic","tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-3b74bce e-flex e-con-boxed tcg-animation-none e-con e-child" data-id="3b74bce" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="e-con-inner"><div class="elementor-element elementor-element-5d1ce7c e-con-full e-flex tcg-animation-none e-con e-child" data-id="5d1ce7c" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-ae56a2b e-con-full e-flex tcg-animation-none e-con e-child" data-id="ae56a2b" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-0ea1b56 tcg-animation-none elementor-widget elementor-widget-tcg-site-logo" data-id="0ea1b56" data-element_type="widget" data-settings="{"logo_type":"light","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcg-site-logo.default"><div class="tcg-logo"><div class="top-logo"> <a href="http://shahisoft.store/"> <img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MDAiIGhlaWdodD0iMTkxIiB2aWV3Qm94PSIwIDAgNTAwIDE5MSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=" width="500" height="191" alt="Logo" class="logo1" data-src="http://shahisoft.store/wp-content/uploads/2025/11/1-1-2.png"> </a></div></div></div></div><div class="elementor-element elementor-element-a64c14b e-con-full e-flex tcg-animation-none e-con e-child" data-id="a64c14b" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-dbfed38 tcg-animation-none elementor-widget elementor-widget-metform" data-id="dbfed38" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="metform.default"><div id="mf-response-props-id-1921" data-previous-steps-style="" data-editswitchopen="" data-response_type="alert" data-erroricon="fas fa-exclamation-triangle" data-successicon="fas fa-check" data-messageposition="top" class=" mf-scroll-top-no"><div class="formpicker_warper formpicker_warper_editable" data-metform-formpicker-key="1921" ><div class="mf-widget-container"><div id="metform-wrap-dbfed38-1921" class="mf-form-wrapper" data-form-id="1921" data-action="https://shahisoft.store/index.php/wp-json/metform/v1/entries/insert/1921" data-wp-nonce="98433db40f" data-form-nonce="1643b9ccf0" data-quiz-summery = "false" data-save-progress = "false" data-form-type="general-form" data-stop-vertical-effect="" ></div> <script type="text/mf" class="mf-template">function controls_data (value){ let currentWrapper = "mf-response-props-id-1921"; let currentEl = document.getElementById(currentWrapper); return currentEl ? currentEl.dataset[value] : false } let is_edit_mode = '' ? true : false; let message_position = controls_data('messageposition') || 'top'; let message_successIcon = controls_data('successicon') || ''; let message_errorIcon = controls_data('erroricon') || ''; let message_editSwitch = controls_data('editswitchopen') === 'yes' ? true : false; let message_proClass = controls_data('editswitchopen') === 'yes' ? 'mf_pro_activated' : ''; let is_dummy_markup = is_edit_mode && message_editSwitch ? true : false; return html` <form className="metform-form-content" ref=${parent.formContainerRef} onSubmit=${ validation.handleSubmit( parent.handleFormSubmit ) } > ${is_dummy_markup ? message_position === 'top' ? props.ResponseDummyMarkup(message_successIcon, message_proClass) : '' : ''} ${is_dummy_markup ? ' ' : message_position === 'top' ? props.SubmitResponseMarkup`${parent}${state}${message_successIcon}${message_errorIcon}${message_proClass}` : ''} <!-------------------------------------------------------- *** IMPORTANT / DANGEROUS *** ${html``} must be used as in immediate child of "metform-form-main-wrapper" class otherwise multistep form will not run at all ----------------------------------------------------------> <div className="metform-form-main-wrapper" key=${'hide-form-after-submit'} ref=${parent.formRef}> ${html` <div data-elementor-type="wp-post" key="2" data-elementor-id="1921" className="elementor elementor-1921"> <div className="elementor-element elementor-element-d8f6056 e-con-full e-flex tcg-animation-none e-con e-parent" data-id="d8f6056" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"> <div className="elementor-element elementor-element-9c2df99 tcg-animation-none elementor-widget elementor-widget-heading" data-id="9c2df99" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="heading.default"> <h2 className="elementor-heading-title elementor-size-default">Subscribe Newsletter :</h2> </div> <div className="elementor-element elementor-element-bb178b5 e-con-full e-flex tcg-animation-none e-con e-child" data-id="bb178b5" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"> <div className="elementor-element elementor-element-ed0f3c2 elementor-widget__width-inherit tcg-animation-none elementor-widget elementor-widget-mf-text" data-id="ed0f3c2" data-element_type="widget" data-settings="{"mf_input_name":"mf-text","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="mf-text.default"> <div className="mf-input-wrapper"> <input type="text" className="mf-input mf-conditional-input" id="mf-input-text-ed0f3c2" name="mf-text" placeholder="${ parent.decodeEntities(`Enter your email address...`) } " onInput=${parent.handleChange} onBlur=${parent.handleChange} aria-invalid=${validation.errors['mf-text'] ? 'true' : 'false'} ref=${el =>{ parent.activateValidation({"message":"This field is required.","minLength":1,"maxLength":"","type":"none","required":false,"expression":"null"}, el) }} /> <${validation.ErrorMessage} errors=${validation.errors} name="mf-text" as=${html`<span className="mf-error-message"></span>`} /> </div> </div> <div className="elementor-element elementor-element-0e20780 mf-btn--center tcg-animation-none elementor-widget elementor-widget-mf-button" data-id="0e20780" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="mf-button.default"> <div className="mf-btn-wraper mf-conditional-input" data-mf-form-conditional-logic-requirement=""> <button type="submit" className="metform-btn metform-submit-btn " id=""> <span>${ parent.decodeEntities(`Subscribe`) } </span> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M507.3 267.3c6.2-6.2 6.2-16.4 0-22.6l-144-144c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L457.4 240 16 240c-8.8 0-16 7.2-16 16s7.2 16 16 16l441.4 0L340.7 388.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l144-144z"></path></svg> </button> </div> </div> </div> </div> </div> `} </div> ${is_dummy_markup ? message_position === 'bottom' ? props.ResponseDummyMarkup(message_successIcon, message_proClass) : '' : ''} ${is_dummy_markup ? ' ' : message_position === 'bottom' ? props.SubmitResponseMarkup`${parent}${state}${message_successIcon}${message_errorIcon}${message_proClass}` : ''} </form> `</script> </div></div></div></div></div></div><div class="elementor-element elementor-element-351784c e-con-full e-flex tcg-animation-none e-con e-child" data-id="351784c" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-e21e7df e-con-full e-flex tcg-animation-none e-con e-child" data-id="e21e7df" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-0690619 e-con-full e-flex tcg-animation-none e-con e-child" data-id="0690619" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-a943a49 tcg-animation-none elementor-widget elementor-widget-heading" data-id="a943a49" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="heading.default"><h2 class="elementor-heading-title elementor-size-default">Support</h2></div><div class="elementor-element elementor-element-ad250a0 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="ad250a0" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/it-company/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Home</h2> </a></div></div></div><div class="elementor-element elementor-element-1663be2 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="1663be2" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/pricing/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Pricing Plan</h2> </a></div></div></div><div class="elementor-element elementor-element-4b8d75e tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="4b8d75e" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/about/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">About us</h2> </a></div></div></div><div class="elementor-element elementor-element-f0140d5 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="f0140d5" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/services/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Our services</h2> </a></div></div></div></div><div class="elementor-element elementor-element-9b47824 e-con-full e-flex tcg-animation-none e-con e-child" data-id="9b47824" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-153460f tcg-animation-none elementor-widget elementor-widget-heading" data-id="153460f" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="heading.default"><h2 class="elementor-heading-title elementor-size-default">Explore Links</h2></div><div class="elementor-element elementor-element-cd8c748 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="cd8c748" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/contact/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Contact Us</h2> </a></div></div></div><div class="elementor-element elementor-element-a0dcb8f tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="a0dcb8f" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/about/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Team Member</h2> </a></div></div></div><div class="elementor-element elementor-element-873681d tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="873681d" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/about/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Latest Portfolio</h2> </a></div></div></div><div class="elementor-element elementor-element-baf6fd3 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="baf6fd3" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/about/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Shop Page</h2> </a></div></div></div><div class="elementor-element elementor-element-85cb997 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="85cb997" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="https://technex.themescamp.com/inner-pages/about/" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">News & Media</h2> </a></div></div></div></div><div class="elementor-element elementor-element-a3a1193 e-con-full e-flex tcg-animation-none e-con e-child" data-id="a3a1193" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-403e7cc tcg-animation-none elementor-widget elementor-widget-heading" data-id="403e7cc" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="heading.default"><h2 class="elementor-heading-title elementor-size-default">Follow Me</h2></div><div class="elementor-element elementor-element-d2b29c6 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="d2b29c6" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="#0" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Facebook</h2> </a></div></div></div><div class="elementor-element elementor-element-d3c8ea8 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="d3c8ea8" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="#0" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Twitter</h2> </a></div></div></div><div class="elementor-element elementor-element-35ea7a6 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="35ea7a6" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="#0" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Instagram</h2> </a></div></div></div><div class="elementor-element elementor-element-e0421e0 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="e0421e0" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="#0" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">LinkedIn</h2> </a></div></div></div></div><div class="elementor-element elementor-element-b2f75ec e-con-full e-flex tcg-animation-none e-con e-child" data-id="b2f75ec" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-34ba02c tcg-animation-none elementor-widget elementor-widget-heading" data-id="34ba02c" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="heading.default"><h2 class="elementor-heading-title elementor-size-default">Address</h2></div><div class="elementor-element elementor-element-81b02e0 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="81b02e0" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" > <a href="#0" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Seventh Ave, 20th Floor <br> New York, NY 10018</h2> </a></div></div></div><div class="elementor-element elementor-element-5f68b94 e-con-full e-flex tcg-animation-none e-con e-child" data-id="5f68b94" data-element_type="container" data-settings="{"tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-b283289 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="b283289" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Open Hours:</h2></div></div></div><div class="elementor-element elementor-element-2fbf3f8 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="2fbf3f8" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Mon - Sat: 8 am - 5 pm,</h2></div></div></div><div class="elementor-element elementor-element-3294f15 tcg-animation-none elementor-widget elementor-widget-tcgelements-heading" data-id="3294f15" data-element_type="widget" data-settings="{"before_heading_clip_path":"none","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-heading.default"><div class="elementor-widget-container"><div class="tcgelements-heading-text heading-selector-type-heading" ><h2 class="tcgelements-heading elementor-size-default tcgelements-text-breakline">Sunday: CLOSED</h2></div></div></div></div></div></div></div></div></div><div class="elementor-element elementor-element-da7ef14 e-con-full e-flex tcg-animation-none e-con e-child" data-id="da7ef14" data-element_type="container" data-settings="{"background_background":"classic","tc_container_hover_selector":"container","tc_container_background_parallax":"no","tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_container_clip_path":"none","tcg_advanced_hover":"no","float_cursor":"no","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}"><div class="elementor-element elementor-element-8b973bf tcg-animation-none elementor-widget elementor-widget-tcgelements-text-editor" data-id="8b973bf" data-element_type="widget" data-settings="{"tc_smooth_scroll_effects":"none","tc_css_effects":"none","tc_dark_mode_responsive_hide_in_dark":"no","tc_dark_mode_responsive_hide_in_light":"no"}" data-widget_type="tcgelements-text-editor.default"><div class="elementor-widget-container"><div class="tcgelements-text-editor"><div class="elementor-text-editor elementor-clearfix"><p>© Copyright 2024 <a href="https://themeforest.net/user/themescamp">ThemesCamp exclusive</a> – All Rights Reserved.</p></div></div></div></div></div></div></div></footer></div></div><div class="progress-wrap cursor-pointer"> <svg class="progress-circle svg-content" width="100%" height="100%" viewBox="-1 -1 102 102"> <path d="M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98" /> </svg></div> <script id="wp-emoji-settings" type="application/json">{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://shahisoft.store/wp-includes/js/wp-emoji-release.min.js?ver=6.9"}}</script> <script type="module">/*! This file is auto-generated */ const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))}); //# sourceURL=https://shahisoft.store/wp-includes/js/wp-emoji-loader.min.js</script> <script data-no-optimize="1">window.lazyLoadOptions=Object.assign({},{threshold:300},window.lazyLoadOptions||{});!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function o(t){return e({},at,t)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,vt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,vt,e)}function i(t){return s(t,null),0}function r(t){return null===c(t)}function u(t){return c(t)===_t}function d(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function f(t,e){et?t.classList.add(e):t.className+=(t.className?" ":"")+e}function _(t,e){et?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function v(t,e){!e||(e=e._observer)&&e.unobserve(t)}function b(t,e){t&&(t.loadingCount+=e)}function p(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function h(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function m(t){return!!t[lt]}function E(t){return t[lt]}function I(t){return delete t[lt]}function y(e,t){var n;m(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[lt]=n)}function L(a,t){var o;m(a)&&(o=E(a),t.forEach(function(t){var e,n;e=a,(t=o[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function k(t,e,n){f(t,e.class_loading),s(t,st),n&&(b(n,1),d(e.callback_loading,t,n))}function A(t,e,n){n&&t.setAttribute(e,n)}function O(t,e){A(t,rt,l(t,e.data_sizes)),A(t,it,l(t,e.data_srcset)),A(t,ot,l(t,e.data_src))}function w(t,e,n){var a=l(t,e.data_bg_multi),o=l(t,e.data_bg_multi_hidpi);(a=nt&&o?o:a)&&(t.style.backgroundImage=a,n=n,f(t=t,(e=e).class_applied),s(t,dt),n&&(e.unobserve_completed&&v(t,e),d(e.callback_applied,t,n)))}function x(t,e){!e||0<e.loadingCount||0<e.toLoadCount||d(t.callback_finish,e)}function M(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function N(t){return!!t.llEvLisnrs}function z(t){if(N(t)){var e,n,a=t.llEvLisnrs;for(e in a){var o=a[e];n=e,o=o,t.removeEventListener(n,o)}delete t.llEvLisnrs}}function C(t,e,n){var a;delete t.llTempImage,b(n,-1),(a=n)&&--a.toLoadCount,_(t,e.class_loading),e.unobserve_completed&&v(t,n)}function R(i,r,c){var l=g(i)||i;N(l)||function(t,e,n){N(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";M(t,a,e),M(t,"error",n)}(l,function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_loaded),s(e,ut),d(n.callback_loaded,e,a),o||x(n,a),z(l)},function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_error),s(e,ft),d(n.callback_error,e,a),o||x(n,a),z(l)})}function T(t,e,n){var a,o,i,r,c;t.llTempImage=document.createElement("IMG"),R(t,e,n),m(c=t)||(c[lt]={backgroundImage:c.style.backgroundImage}),i=n,r=l(a=t,(o=e).data_bg),c=l(a,o.data_bg_hidpi),(r=nt&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),k(a,o,i)),w(t,e,n)}function G(t,e,n){var a;R(t,e,n),a=e,e=n,(t=Et[(n=t).tagName])&&(t(n,a),k(n,a,e))}function D(t,e,n){var a;a=t,(-1<It.indexOf(a.tagName)?G:T)(t,e,n)}function S(t,e,n){var a;t.setAttribute("loading","lazy"),R(t,e,n),a=e,(e=Et[(n=t).tagName])&&e(n,a),s(t,_t)}function V(t){t.removeAttribute(ot),t.removeAttribute(it),t.removeAttribute(rt)}function j(t){h(t,function(t){L(t,mt)}),L(t,mt)}function F(t){var e;(e=yt[t.tagName])?e(t):m(e=t)&&(t=E(e),e.style.backgroundImage=t.backgroundImage)}function P(t,e){var n;F(t),n=e,r(e=t)||u(e)||(_(e,n.class_entered),_(e,n.class_exited),_(e,n.class_applied),_(e,n.class_loading),_(e,n.class_loaded),_(e,n.class_error)),i(t),I(t)}function U(t,e,n,a){var o;n.cancel_on_exit&&(c(t)!==st||"IMG"===t.tagName&&(z(t),h(o=t,function(t){V(t)}),V(o),j(t),_(t,n.class_loading),b(a,-1),i(t),d(n.callback_cancel,t,e,a)))}function $(t,e,n,a){var o,i,r=(i=t,0<=bt.indexOf(c(i)));s(t,"entered"),f(t,n.class_entered),_(t,n.class_exited),o=t,i=a,n.unobserve_entered&&v(o,i),d(n.callback_enter,t,e,a),r||D(t,n,a)}function q(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function H(t,o,i){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?$(t.target,t,o,i):(e=t.target,n=t,a=o,t=i,void(r(e)||(f(e,a.class_exited),U(e,n,a,t),d(a.callback_exit,e,n,t))));var e,n,a})}function B(e,n){var t;tt&&!q(e)&&(n._observer=new IntersectionObserver(function(t){H(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function J(t){return Array.prototype.slice.call(t)}function K(t){return t.container.querySelectorAll(t.elements_selector)}function Q(t){return c(t)===ft}function W(t,e){return e=t||K(e),J(e).filter(r)}function X(e,t){var n;(n=K(e),J(n).filter(Q)).forEach(function(t){_(t,e.class_error),i(t)}),t.update()}function t(t,e){var n,a,t=o(t);this._settings=t,this.loadingCount=0,B(t,this),n=t,a=this,Y&&window.addEventListener("online",function(){X(n,a)}),this.update(e)}var Y="undefined"!=typeof window,Z=Y&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),tt=Y&&"IntersectionObserver"in window,et=Y&&"classList"in document.createElement("p"),nt=Y&&1<window.devicePixelRatio,at={elements_selector:".lazy",container:Z||Y?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",it="srcset",rt="sizes",ct="poster",lt="llOriginalAttrs",st="loading",ut="loaded",dt="applied",ft="error",_t="native",gt="data-",vt="ll-status",bt=[st,ut,dt,ft],pt=[ot],ht=[ot,ct],mt=[ot,it,rt],Et={IMG:function(t,e){h(t,function(t){y(t,mt),O(t,e)}),y(t,mt),O(t,e)},IFRAME:function(t,e){y(t,pt),A(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){y(t,pt),A(t,ot,l(t,e.data_src))}),y(t,ht),A(t,ct,l(t,e.data_poster)),A(t,ot,l(t,e.data_src)),t.load()}},It=["IMG","IFRAME","VIDEO"],yt={IMG:j,IFRAME:function(t){L(t,pt)},VIDEO:function(t){a(t,function(t){L(t,pt)}),L(t,ht),t.load()}},Lt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,o=this._settings,i=W(t,o);{if(p(this,i.length),!Z&&tt)return q(o)?(e=o,n=this,i.forEach(function(t){-1!==Lt.indexOf(t.tagName)&&S(t,e,n)}),void p(n,0)):(t=this._observer,o=i,t.disconnect(),a=t,void o.forEach(function(t){a.observe(t)}));this.loadAll(i)}},destroy:function(){this._observer&&this._observer.disconnect(),K(this._settings).forEach(function(t){I(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;W(t,n).forEach(function(t){v(t,e),D(t,n,e)})},restoreAll:function(){var e=this._settings;K(e).forEach(function(t){P(t,e)})}},t.load=function(t,e){e=o(e);D(t,e)},t.resetStatus=function(t){i(t)},t}),function(t,e){"use strict";function n(){e.body.classList.add("litespeed_lazyloaded")}function a(){console.log("[LiteSpeed] Start Lazy Load"),o=new LazyLoad(Object.assign({},t.lazyLoadOptions||{},{elements_selector:"[data-lazyloaded]",callback_finish:n})),i=function(){o.update()},t.MutationObserver&&new MutationObserver(i).observe(e.documentElement,{childList:!0,subtree:!0,attributes:!0})}var o,i;t.addEventListener?t.addEventListener("load",a,!1):t.attachEvent("onload",a)}(window,document);</script><script data-no-optimize="1">window.litespeed_ui_events=window.litespeed_ui_events||["mouseover","click","keydown","wheel","touchmove","touchstart"];var urlCreator=window.URL||window.webkitURL;function litespeed_load_delayed_js_force(){console.log("[LiteSpeed] Start Load JS Delayed"),litespeed_ui_events.forEach(e=>{window.removeEventListener(e,litespeed_load_delayed_js_force,{passive:!0})}),document.querySelectorAll("iframe[data-litespeed-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-litespeed-src"))}),"loading"==document.readyState?window.addEventListener("DOMContentLoaded",litespeed_load_delayed_js):litespeed_load_delayed_js()}litespeed_ui_events.forEach(e=>{window.addEventListener(e,litespeed_load_delayed_js_force,{passive:!0})});async function litespeed_load_delayed_js(){let t=[];for(var d in document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e=>{t.push(e)}),t)await new Promise(e=>litespeed_load_one(t[d],e));document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded")),window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"))}function litespeed_load_one(t,e){console.log("[LiteSpeed] Load ",t);var d=document.createElement("script");d.addEventListener("load",e),d.addEventListener("error",e),t.getAttributeNames().forEach(e=>{"type"!=e&&d.setAttribute("data-src"==e?"src":e,t.getAttribute(e))});let a=!(d.type="text/javascript");!d.src&&t.textContent&&(d.src=litespeed_inline2src(t.textContent),a=!0),t.after(d),t.remove(),a&&e()}function litespeed_inline2src(t){try{var d=urlCreator.createObjectURL(new Blob([t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1")],{type:"text/javascript"}))}catch(e){d="data:text/javascript;base64,"+btoa(t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1"))}return d}</script><script data-no-optimize="1">var litespeed_vary=document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"");litespeed_vary||fetch("/wp-content/plugins/litespeed-cache/guest.vary.php",{method:"POST",cache:"no-cache",redirect:"follow"}).then(e=>e.json()).then(e=>{console.log(e),e.hasOwnProperty("reload")&&"yes"==e.reload&&(sessionStorage.setItem("litespeed_docref",document.referrer),window.location.reload(!0))});</script><script data-optimized="1" type="litespeed/javascript" data-src="https://shahisoft.store/wp-content/litespeed/js/883a7f7caf284bcdfbda8c2962606cda.js?ver=dac8d"></script></body></html> <!-- Page optimized by LiteSpeed Cache @2025-12-09 17:53:12 --> <!-- Page cached by LiteSpeed Cache 7.6.2 on 2025-12-09 17:53:12 --> <!-- Guest Mode --> <!-- QUIC.cloud CCSS in queue --> <!-- QUIC.cloud UCSS in queue -->