Giter Site home page Giter Site logo

dtbaker / envato-wp-theme-setup-wizard Goto Github PK

View Code? Open in Web Editor NEW
203.0 22.0 67.0 391 KB

A step by step setup wizard that runs after a ThemeForest theme has been activated.

License: GNU General Public License v2.0

PHP 75.45% CSS 5.97% JavaScript 18.57% Hack 0.01%

envato-wp-theme-setup-wizard's Issues

Better handling of data

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?

'upgrader_post_install' prompts setup wizard again?

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;
}

[Need help] Get TGMPA parent_slug and menu from it's own config

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?

Issue with import Pages

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");

Envato Authentication

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

Theme Configuratiions

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.

Elementor background images

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.

Can you please add license?

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.

License

Hi!

It is possible to use your codes inamcommercial themes fot themeforest market?

Good work!!

How to test ?

The single biggest issue which really haunts me before migrating to a new update system. How do I test if it works or not ?

Unable to save session values

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.'

Could not load installer

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 :)

Importing Theme Images

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.

capture

Thanks

Handling of Custom fields

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.

menus do not connect.

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.

Plugin selection

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

How to export content just like yours

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

Making it work with a plugin

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?

bbPress conflict

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

all.xml not working , function missing

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

PHP 7.4 problem

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.

[Discussion] Split server side and theme/client side into 2 different repos?

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.