dtbaker / envato-wp-theme-setup-wizard Goto Github PK
View Code? Open in Web Editor NEWA step by step setup wizard that runs after a ThemeForest theme has been activated.
License: GNU General Public License v2.0
A step by step setup wizard that runs after a ThemeForest theme has been activated.
License: GNU General Public License v2.0
Hello,
I bumped into an issue where the default.json file was returning NULL. As far my understanding it was due to some kind of permission issue. So what I did to solve this is to make proper use of WP_Filesystem.
Here is my code. I think it can further be improved.
private function _get_json( $file ) {
WP_Filesystem();
$creds = request_filesystem_credentials(site_url() . '/wp-admin/', '', false, false, array());
if ( ! WP_Filesystem($creds) ) {
return false;
}
global $wp_filesystem;
// change path with path to your content dir
$dir = $wp_filesystem->find_folder(WP_CONTENT_DIR . "/themes/offshore/envato_setup/content");
$file = trailingslashit($dir) . $file;
if ( $wp_filesystem->exists( $file ) ) {
return json_decode( $wp_filesystem->get_contents( $file ), true );
} else {
return array();
}
}
Same approach can be used for _get_sql
function. Thoughts?
I've never actually been able to test the theme update process as a customer, since Themeforest doesn't add your own theme to your account.
I noticed this code here and it made me wonder, when a client updates the theme through the Envato Market plugin, will they be prompted to run the setup wizard again?
/**
* After a theme update we clear the setup_complete option. This prompts the user to visit the update page again.
*
* @since 1.1.8
* @access public
*/
public function upgrader_post_install( $return, $theme ) {
if ( is_wp_error( $return ) ) {
return $return;
}
if ( $theme != get_stylesheet() ) {
return $return;
}
update_option( 'envato_setup_complete', false );
return $return;
}
Hey guys,
I’ve been using the redux framework on my themes, but it seems that there are a few issues.
theme options not import envato setup wizard.?
Any thoughts?
Thanks!
Hi @dtbaker
I've recently changed my tgmpa function config to:
$config = array(
'parent_slug' => 'my_theme_dashboard',
'menu' => 'my_theme_install_plugins',
);
tgmpa( $plugins, $config );
In this case my TGMPA link should looks like: http://example.com/wp-admin/admin.php?page=my_theme_install_plugins
.
If we try to use setup wizard within custom TGMPA parent slug / menu it will cause ajax error
when activating / installing plugins.
Found that you statically defined default TGMPA menu slug as a tgmpa-install-plugins
and parent slug as themes.php
.
I think it will be better to get them directly from TGM_Plugin_Activation class properties via __get()
magic method.
I've tried to implement it, but i can't figure out how to get TGMPA Instance with configured properties.
It's returns only defaults properties values instead of the values specified above in the tgmpa()
function config.
Any ideas, how to properly get TGM_Plugin_Activation 'menu' and parent_slug
properties?
Hi, @dtbaker .
Very inspired to see that amazing plugin.
Please, can you register repo as a composer package
Hello
We try to import a pages with your installer but get an error "Error"
We also noticed that in the class Envato_Theme_Setup_Wizard there is no import function for pages
_content_install_pages
Also, there is no function to import from xml as you have written in the Readme
return $this->_import_wordpress_xml_file(DIR ."/content/all.xml");
How could we export contents or which plugins should we use to export?
I am receiving an error when the authentication via our server is completed, the API connection doesn't seem to be connected even after pressing save changes.
Unexpected token s in JSON at position 0
I love this script, but would love to see how you integrated it in your theme. Can you share the theme with me? me @ (myusername).com ? Or let me know when it is available to be downloaded/bought.
HI David, thanks so much for sharing this import script. I'm noticing a small issue, wondering if you've come across this as well.
As I'm testing, I'm noticing that background images stored in Elementor widgets are broken during import. I think this is because Elementor is storing them in the _elementor_data post meta field as css, and I didn't see anywhere in the envato_setup.php that replaces the path from the originating site.
It looks like you've provided space to do the find / replace on line 1780 of envato_setup.php but no find / replace logic.
Just wondering if you updated the script recently.
Thanks again. Cheers.
Hi there,
Amazing job!
Can you please add license to this project?
Without it we can't legally use/copy/change/improve it in any way.
Thank you.
Hi!
It is possible to use your codes inamcommercial themes fot themeforest market?
Good work!!
The single biggest issue which really haunts me before migrating to a new update system. How do I test if it works or not ?
Hello,
I have an issue! The session values are empty. I see the session files being generated but the values are empty. I just end up with 'Failed to find WordPress return URL. Please report this error to the item author.'
Thanks for this great installer.
I wish I can use it but no chance. I have upload api folder to my server. ( of course I have changed id, secret and url).
Then uploaded envato_setup folder
mytheme / plugins / envato_setup
I have added to function.php
include (get_template_directory() . 'plugins/envato_setup/envato_setup.php');
add_filter('my_theme_theme_setup_wizard_username', 'my_theme_set_theme_setup_wizard_username', 10);
if( ! function_exists('my_theme_set_theme_setup_wizard_username') ){
function my_theme_set_theme_setup_wizard_username($username){
return 'myUser';
}
}
add_filter('my_theme_theme_setup_wizard_oauth_script', 'my_theme_set_theme_setup_wizard_oauth_script', 10);
if( ! function_exists('my_theme_set_theme_setup_wizard_oauth_script') ){
function my_theme_set_theme_setup_wizard_oauth_script($oauth_url){
return 'http://mysite.com/envato/api/server-script.php';
}
}
There is not any screen for setup theme. I have checked Appearence and other menus on wordpress. Tried deactivate and reactivate theme. Tried to include other files too envato_setup_init.php ....
I have tried to include files to mytheme/plugins/myUsername/envato_setup... Tried all combination, checked everything but could not open setup screen.
I am going to lose my mind :D What's your suggestion :)
Hi dtbaker,
Amazing script you have created. I am just trying to import the standard theme images using the "default.json" file.
I have been playing around with the function private function _fetch_remote_file( $url, $post ) {
to try and revert it back to the normal WordPress image importer however am having no luck.
Whenever I try and change this function on the wizard under the "Media" section is just hangs and keeps stating "Installing"
Wondering if you have any default code I could use to revert the image import back to the normal WordPress importer.
The script works great apart from being able to import my images.
Thanks
Hi,
I am trying to use this theme on my next theme and so far everything is good. I found one issue though. The custom fields for the post/pages were not exported/imported. Do you have any idea about this ?
PS: I am using default.json method, not xml.
Thanks for this amazing setup wizard. I am having some trouble in the menu linking. The menus are imported but the set_theme_mod does not assign the correct navigation menus which is causing issues. I am also not able to debug the "settings" part as the logs and errors do not appear in the ajax request return.
Any help would be appreciated.
Hi @dtbaker.
This is a really nice work.
Is there an option to give user to choose from plugins just as like you did on importing demo content section.
And another issue is: can we use regular wordpress header and footer for this wizard. Do you know a way to achieve this.
Thank you
Hi @dtbaker,
there are some options to export demo content from existing demo site but I wonder how you separately exported for all types like below.
|---
|--- all.xml
|--- menu.json
|--- options.json
|--- products.xml
|--- variations.xml
|--- widget_options.json
|--- widget_positions.json
I have managed to do most of the stuff and it seems to be working with my plugin. But after I 'Approve' the request for updates I get this error - 'Failed to find WordPress return URL. Please report this error to the item author.'.
What I missed?
Hi @dtbaker,
When I preinstalled bbpress I am having the error below.
Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'filter_permalink' not found or invalid function name in C:\wamp\www\themeforest\wordpress\statix\wp-includes\plugin.php on line 235
Have you ever tried using this wizard in theme while woocommerce and bbpress installed?
Thanks
Hi , please provide me the complete function for make working all.xml
i include the
private function _content_install_pages(){
return $this->_import_wordpress_xml_file(__DIR__ ."/content/all.xml");
}
in envato_setup.php giving ajax error ,
and one more thing i want to ask about , m i have to include the
both
include(get_template_directory().'/lib/envato_setup/envato_setup_init.php'); // Functions
include(get_template_directory().'/lib/envato_setup/envato_setup.php');
and i have to include the wodpres-importer.php too...
in funtion.php
please help
Hi,
if anybody's here still ;) I'm still using this awesome piece of code and I still believe it's the only and best way to import demo contant, however it doesn't work on PHP 7.4. Every import ends up with a bunch of "Unable to find replacement." in ajax response, and it doesn't import anything except Media files.
Hi @dtbaker
What about transfer api
folder into another repository, for eg: envato-wp-theme-setup-wizard-server
.
And also move envato_setup
folder contents into repo's root folder.
It will increase better file structure. And theme developers can require different repo's via composer without the need to download unnecessary files on server, or in theme's folder.
Cheers!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.