Add Tools tab, new hosting providers, and Go Pro buttons for Revive.so and MainWP

This commit is contained in:
Marcus Quinn
2025-03-16 23:44:46 +00:00
parent 24d86efb16
commit 1346f2595a
3 changed files with 685 additions and 31 deletions

41
.gitignore vendored
View File

@ -1,17 +1,9 @@
# ---> macOS
# General
# macOS
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
@ -19,49 +11,38 @@ Icon
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# ---> Windows
# Windows thumbnail cache files
# Windows
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
# Dump file
*.stackdump
# Folder config file
[Dd]esktop.ini
# Recycle Bin used on file shares
$RECYCLE.BIN/
# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp
# Windows shortcuts
*.lnk
# Custom files
.aider*
.DS_Store
.gitignore
.woodpecker.yml
# Exclude Reference Files
.git_status_output.txt
.git_status_temp.txt
project-documents/
reference-plugins/
# Exclude Project Files
project documents
reference plugins
# Optional common exclusions (uncomment as needed)
# *.log
# build/
# dist/
# .vscode/
# .idea/

View File

@ -202,6 +202,38 @@ function wp_allstars_get_pro_plugins_config() {
),
'free_slug' => 'fluentform'
),
'mainwp' => array(
'name' => 'MainWP Pro',
'description' => 'Manage multiple WordPress sites from a single dashboard with advanced features.',
'button_group' => array(
array(
'text' => 'Go Pro',
'url' => 'https://mainwp.com/upgrade/',
'primary' => true
),
array(
'text' => 'Pricing',
'url' => 'https://mainwp.com/purchase/'
)
),
'free_slug' => 'mainwp-child'
),
'revive-so' => array(
'name' => 'Revive.so Pro',
'description' => 'Advanced content optimization and SEO tool for WordPress.',
'button_group' => array(
array(
'text' => 'Go Pro',
'url' => 'https://revive.so/pricing/',
'primary' => true
),
array(
'text' => 'Home Page',
'url' => 'https://revive.so/'
)
),
'free_slug' => 'revive-so'
),
'fluent-support' => array(
'name' => 'Fluent Support Pro',
'description' => 'Premium help desk and support ticket system.',

View File

@ -31,6 +31,485 @@ function wp_allstars_update_option() {
}
add_action('wp_ajax_wp_allstars_update_option', 'wp_allstars_update_option');
// Define tools
function wp_allstars_get_tools() {
return array(
'advise' => array(
'name' => 'Advise.so',
'description' => 'Website analytics and optimization tool for improving user experience and conversion rates.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://advise.so/',
'primary' => true
)
)
),
'seoutils' => array(
'name' => 'SEO Utils',
'description' => 'Collection of SEO tools to analyze and improve website search engine optimization.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://seoutils.app/',
'primary' => true
)
)
),
'dataforseo' => array(
'name' => 'DataForSEO',
'description' => 'API-based SEO data provider for rank tracking, keyword research and competitive analysis.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://dataforseo.com/',
'primary' => true
)
)
),
'ahrefs' => array(
'name' => 'Ahrefs',
'description' => 'Comprehensive SEO toolset for backlink analysis, keyword research, and competitor research.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://ahrefs.com/',
'primary' => true
)
)
),
'localrank' => array(
'name' => 'LocalRank.so',
'description' => 'Local SEO tool for tracking and improving local search rankings for businesses.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://localrank.so/',
'primary' => true
)
)
),
'turnithuman' => array(
'name' => 'Turn It Human',
'description' => 'AI content humanizer that makes AI-generated content sound more natural and authentic.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://turnithuman.com/',
'primary' => true
)
)
),
'searchconsole' => array(
'name' => 'Google Search Console',
'description' => 'Free tool from Google to monitor and troubleshoot your site\'s presence in Google Search results.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://search.google.com/search-console/about',
'primary' => true
)
)
),
'bingwebmaster' => array(
'name' => 'Bing Webmaster Tools',
'description' => 'Free tool from Microsoft to help optimize your website for Bing search engine.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.bing.com/webmasters/about',
'primary' => true
)
)
),
'fiverr' => array(
'name' => 'Fiverr',
'description' => 'Freelance services marketplace for businesses to find digital services including web development.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.fiverr.com/',
'primary' => true
)
)
),
'legiit' => array(
'name' => 'Legiit',
'description' => 'Marketplace for digital marketing services including SEO, content writing, and web design.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://legiit.com/',
'primary' => true
)
)
),
'openwebui' => array(
'name' => 'Open WebUI',
'description' => 'Open-source web interface for interacting with AI models and chatbots.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://openwebui.com/',
'primary' => true
)
)
),
'nextcloud' => array(
'name' => 'Nextcloud',
'description' => 'Self-hosted productivity platform and file sync solution for secure collaboration.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://nextcloud.com/',
'primary' => true
)
)
),
'enpass' => array(
'name' => 'Enpass',
'description' => 'Password manager that stores sensitive information locally on your device.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.enpass.io/',
'primary' => true
)
)
),
'pdfstudio' => array(
'name' => 'PDF Studio',
'description' => 'Professional PDF editor with advanced features for creating and modifying PDF documents.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.qoppa.com/pdfstudio/',
'primary' => true
)
)
),
'affinity' => array(
'name' => 'Affinity',
'description' => 'Professional creative software suite including Photo, Designer, and Publisher applications.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://affinity.serif.com/',
'primary' => true
)
)
),
'pixelmator' => array(
'name' => 'Pixelmator Pro',
'description' => 'Professional image editing software for Mac with powerful tools and an intuitive interface.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.pixelmator.com/pro/',
'primary' => true
)
)
),
'upscayl' => array(
'name' => 'Upscayl',
'description' => 'Open-source AI image upscaler that enhances and enlarges images with improved quality.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://upscayl.org/',
'primary' => true
)
)
),
'sitesucker' => array(
'name' => 'SiteSucker',
'description' => 'Website downloading tool that allows you to save entire websites for offline viewing.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://ricks-apps.com/osx/sitesucker/index.html',
'primary' => true
)
)
),
'virustotal' => array(
'name' => 'VirusTotal',
'description' => 'Free service that analyzes files and URLs for viruses, worms, trojans, and other malicious content.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.virustotal.com/',
'primary' => true
)
)
),
'transmit' => array(
'name' => 'Transmit',
'description' => 'File transfer client for macOS with support for FTP, SFTP, WebDAV, and cloud services.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://panic.com/transmit/',
'primary' => true
)
)
),
'iterm2' => array(
'name' => 'iTerm2',
'description' => 'Terminal emulator for macOS with advanced features beyond the default Terminal app.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://iterm2.com/',
'primary' => true
)
)
),
'windsurf' => array(
'name' => 'Codeium Windsurf',
'description' => 'AI-powered IDE with advanced code completion and generation capabilities.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://codeium.com/windsurf',
'primary' => true
)
)
),
'lowfruits' => array(
'name' => 'Low Fruits',
'description' => 'SEO tool for finding low-competition keywords to target for faster ranking.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://lowfruits.io/',
'primary' => true
)
)
),
'keysearch' => array(
'name' => 'Keysearch',
'description' => 'Affordable keyword research tool for finding valuable keywords for SEO.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.keysearch.co/',
'primary' => true
)
)
),
'smartlead' => array(
'name' => 'SmartLead',
'description' => 'Email outreach platform for cold email campaigns and lead generation.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.smartlead.ai/',
'primary' => true
)
)
),
'muraena' => array(
'name' => 'Muraena AI',
'description' => 'AI-powered writing assistant for creating and optimizing content.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://muraena.ai/',
'primary' => true
)
)
),
'googlebusiness' => array(
'name' => 'Google Business Profile',
'description' => 'Free tool to manage your business presence on Google Search and Maps.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://business.google.com/',
'primary' => true
)
)
),
'chatgptdetector' => array(
'name' => 'ChatGPT Detector',
'description' => 'Tool to detect AI-generated content from models like ChatGPT.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://textvisualization.app/chatgpt-detector/',
'primary' => true
)
)
),
'zerogpt' => array(
'name' => 'ZeroGPT',
'description' => 'AI content detector that identifies text generated by AI models.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://zerogpt.tools/',
'primary' => true
)
)
),
'zerogptplus' => array(
'name' => 'ZeroGPT Plus',
'description' => 'Advanced AI content detector with improved accuracy and additional features.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.zerogpt.plus/en',
'primary' => true
)
)
),
'neuronwriter' => array(
'name' => 'NeuronWriter',
'description' => 'AI-powered SEO content optimization tool for creating high-ranking content.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.neuronwriter.com/',
'primary' => true
)
)
),
'serposcope' => array(
'name' => 'Serposcope',
'description' => 'Open-source rank tracker to monitor website positions in search engines.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.serposcope.com/en/',
'primary' => true
)
)
),
'seoptimer' => array(
'name' => 'SEOptimer',
'description' => 'Website audit tool that provides SEO, usability, and performance recommendations.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.seoptimer.com/',
'primary' => true
)
)
),
'jitsi' => array(
'name' => 'Jitsi Meet',
'description' => 'Free, open-source video conferencing platform with no account required.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://meet.jit.si/',
'primary' => true
)
)
),
'appsumo' => array(
'name' => 'AppSumo',
'description' => 'Marketplace for discounted digital products and services for entrepreneurs.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://appsumo.com/',
'primary' => true
)
)
),
'screenstudio' => array(
'name' => 'Screen Studio',
'description' => 'Screen recording software with automatic editing and professional results.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://screen.studio/',
'primary' => true
)
)
),
'screenflow' => array(
'name' => 'ScreenFlow',
'description' => 'Professional screen recording and video editing software for macOS.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.telestream.net/screenflow/overview.htm',
'primary' => true
)
)
),
'acronis' => array(
'name' => 'Acronis Cyber Protect Connect',
'description' => 'Remote desktop and support solution for secure access to remote computers.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.acronis.com/en-us/products/cyber-protect-connect/',
'primary' => true
)
)
),
'espocrm' => array(
'name' => 'EspoCRM',
'description' => 'Open-source customer relationship management (CRM) application.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.espocrm.com/',
'primary' => true
)
)
),
'libreoffice' => array(
'name' => 'LibreOffice',
'description' => 'Free and open-source office suite compatible with Microsoft Office formats.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.libreoffice.org/',
'primary' => true
)
)
),
'localwp' => array(
'name' => 'Local',
'description' => 'Local WordPress development tool for creating WordPress sites locally.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://localwp.com/',
'primary' => true
)
)
),
'notability' => array(
'name' => 'Notability',
'description' => 'Note-taking app for iPad and Mac with handwriting and PDF annotation features.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://notability.com/',
'primary' => true
)
)
),
'ulysses' => array(
'name' => 'Ulysses',
'description' => 'Writing app for Mac, iPad, and iPhone with a clean interface and powerful features.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://ulysses.app/',
'primary' => true
)
)
)
);
}
// Define hosting providers
function wp_allstars_get_hosting_providers() {
return array(
@ -108,6 +587,58 @@ function wp_allstars_get_hosting_providers() {
'url' => 'https://simplehost.so/#pricing'
)
)
),
'cloudflare' => array(
'name' => 'Cloudflare',
'description' => 'Global cloud platform that provides CDN, security, and performance optimization services.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.cloudflare.com/en-gb/',
'primary' => true
),
array(
'text' => 'Pricing',
'url' => 'https://www.cloudflare.com/en-gb/plans/'
)
)
),
'spaceship' => array(
'name' => 'Spaceship',
'description' => 'Modern hosting platform with advanced features for WordPress sites.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.spaceship.com/',
'primary' => true
)
)
),
'101domain' => array(
'name' => '101Domain',
'description' => 'Domain registration and management service with support for hundreds of TLDs.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.101domain.com/',
'primary' => true
)
)
),
'namecheap' => array(
'name' => 'Namecheap',
'description' => 'Domain registrar and web hosting provider with competitive pricing and good support.',
'button_group' => array(
array(
'text' => 'Home Page',
'url' => 'https://www.namecheap.com/',
'primary' => true
),
array(
'text' => 'Pricing',
'url' => 'https://www.namecheap.com/hosting/shared/'
)
)
)
);
}
@ -209,6 +740,7 @@ function wp_allstars_get_recommended_plugins() {
'seo' => array(
'burst-statistics',
'pretty-link',
'revive-so',
'seo-by-rank-math',
'syndication-links',
'ultimate-410',
@ -696,7 +1228,7 @@ function wp_allstars_ajax_get_themes() {
<a class="button button-secondary preview install-theme-preview" href="<?php echo esc_url($theme_data->preview_url); ?>" target="_blank">
<?php esc_html_e('Preview'); ?>
</a>
<a class="button button-primary" href="https://www.kadencewp.com/kadence-theme/" target="_blank">
<a class="button button-primary" href="https://www.kadencewp.com/kadence-theme/" target="_blank" style="text-align: center;">
<?php esc_html_e('Go Pro'); ?>
</a>
</div>
@ -915,6 +1447,9 @@ function wp_allstars_settings_page() {
<a href="?page=wp-allstars&tab=hosting" class="nav-tab <?php echo $active_tab == 'hosting' ? 'nav-tab-active' : ''; ?>">
<?php esc_html_e('Hosting', 'wp-allstars'); ?>
</a>
<a href="?page=wp-allstars&tab=tools" class="nav-tab <?php echo $active_tab == 'tools' ? 'nav-tab-active' : ''; ?>">
<?php esc_html_e('Tools', 'wp-allstars'); ?>
</a>
</h2>
</div>
@ -1383,6 +1918,112 @@ function wp_allstars_settings_page() {
</div>
</div>
</div>
<?php elseif ($active_tab == 'tools'): ?>
<div class="tab-content" id="tools">
<style>
.wpa-pro-plugins {
padding: 20px;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(450px, 1fr));
gap: 24px;
max-width: 1920px;
margin: 0 auto;
}
.wpa-pro-plugin {
background: #fff;
border: 1px solid #ddd;
padding: 24px;
border-radius: 8px;
display: flex;
flex-direction: column;
transition: all 0.2s ease;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.wpa-pro-plugin:hover {
border-color: #2271b1;
box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.wpa-pro-plugin h3 {
margin: 0 0 12px;
font-size: 16px;
font-weight: 600;
color: #1d2327;
line-height: 1.4;
}
.wpa-pro-plugin p {
margin: 0 0 16px;
color: #50575e;
font-size: 14px;
line-height: 1.6;
min-height: 80px;
}
.wpa-pro-plugin .button-group {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: auto;
}
.wpa-pro-plugin .button {
text-decoration: none;
min-width: 120px;
text-align: center;
height: 30px;
line-height: 28px;
padding: 0 12px;
font-size: 13px;
font-weight: normal;
margin: 0;
border: 1px solid #0071a1 !important;
border-radius: 3px !important;
background: #f6f7f7;
color: #0071a1;
display: inline-block;
vertical-align: top;
box-shadow: none;
cursor: pointer;
}
.wpa-pro-plugin .button:hover {
background: #f0f0f1;
border-color: #0071a1;
color: #0071a1;
}
.wpa-pro-plugin .button.button-primary {
background: #2271b1;
border-color: #2271b1 !important;
color: #fff;
}
.wpa-pro-plugin .button.button-primary:hover {
background: #135e96;
border-color: #135e96 !important;
}
</style>
<div class="wpa-pro-plugins">
<?php
$tools = wp_allstars_get_tools();
// Sort tools alphabetically by name
uasort($tools, function($a, $b) {
return strcmp($a['name'], $b['name']);
});
foreach ($tools as $tool) {
?>
<div class="wpa-pro-plugin">
<h3><?php echo esc_html($tool['name']); ?></h3>
<p><?php echo esc_html($tool['description']); ?></p>
<?php if (isset($tool['button_group'])): ?>
<div class="button-group">
<?php foreach ($tool['button_group'] as $button): ?>
<a href="<?php echo esc_url($button['url']); ?>" target="_blank" class="button <?php echo isset($button['primary']) && $button['primary'] ? 'button-primary' : ''; ?>">
<?php echo esc_html($button['text']); ?>
</a>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
<?php
}
?>
</div>
</div>
<?php endif; ?>
</div>
</div>