Git Product home page Git Product logo

merlinwp's People

Contributors

agusmu avatar ange007 avatar capuderg avatar codetipi avatar jasonyingling avatar kennyward avatar lumberman avatar mayukojpn avatar nicholaskatsambiris avatar primozcigler avatar richtabor avatar robertdevore avatar sankarsrinivasan1 avatar szepeviktor avatar truongwp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

merlinwp's Issues

Add back the license step skip button, removed in PR #68

Being able to skip any part of the wizard is pretty important for a user's control of the process. We don't want a situation where a user has to sit with their wizard half-done while they're locating licenses, trying to validate a key (if they've purchased from outside of EDD), or if they simply don't have one.

I vote we revert #68 and add the button back in. Maybe it could have a custom label string, for example "Add Later" instead of "Skip", but we really need to have a way for folks to continue with the setup process.

What do you think?

Plugin Selection / Section by Required / Recommended

Hi,

I have couple of required plugin and rest of them are recommended plugins. But Merlin is installing them all in my opinion.

There should be headings for required and recommended plugins and also selection for what plugins we want to install.

Thanks

Selectively Check/Uncheck Plugins?

Someone might have already mentioned this but would be awesome to be able to selectively uncheck/check which plugins are to be installed (like everything else), other than ones that are required.

I also put together a little preview video for my buyers, sorry mic volume/gain was a little low on my Blue mic, this is using the Redux Framework option.

https://cl.ly/36040X2M182I

Action/Filter prefix

Hi,

You are using theme name as prefix for this it should be custom prefix which we can pass from config or it can be template name as If a theme has long name the prefix is too long which is not developer friendly.

so instead of do_action( $this->theme . '_merlin_license_form' ) we can do is do_action( $this->theme->template . '_merlin_license_form' )

Thanks

Content doesn't import conletely

When using the import demo content, pass without errors but the content is not imported completely.

I tested it with a content with 96 images but the images were placeholders and really small.
The plugin One Click Demo Import uses WP import 2.0 and works fine with all the XML Import Files I tested.

Maybe something like that can be implemented.

Remove the "theme" prefix from the license step

@primozcigler I think having the "theme" prefix here is not necessary and keeps the wizard bound to themes only (looking into the future). As EDD licenses are for plugins and themes, I'd suggest that we remove the "theme" prefix from the license step/vars/everything.

For example, theme_license_step and theme-license.

What do you think?

Next Button Issue

Hi,

If the step is not successfully completed the button got disabled and not working.

Thanks

Document source code usage

@primozcigler wrote:

The zip gets build by gulp tasks AFAIK. But it's not documented (AFAIK).

As opposed to release ZIP usage source code usage could be documented in README.

Release date?

Any news on the release date? Looking forward to using it.

Importing Menus

I'd like for menus to also import as part of the content importer. That'd be awesome. 🙌

Several demos to choose from

Hi Rich,
Congratulations on the fantastic plugin.

Unfortunately for me, it does not serve because all my themes have more than one demo.

I believe that this is also the case for other authors.

Do you have any plans to add more than a demo available for the user to choose.?

JS error after click import demo

merlin.js:351 Uncaught TypeError: Cannot read property 'toLowerCase' of null at Object.ajax_callback [as success] (merlin.js:351) at i (load-scripts.php:2) at Object.fireWith [as resolveWith] (load-scripts.php:2) at y (load-scripts.php:4) at XMLHttpRequest.c (load-scripts.php:4)

"Please Don't Refresh" notice

I think it may be a good idea to add a "don't refresh this page" badge of some sort on the content importer screen, that appears once the importer starts working.

Theme Check plugin WARNING

WARNING: Found a translation function that is missing a text-domain. Function __, with the arguments 'Skipping attachment "%s", fetching attachments disabled'
WARNING: Found a translation function that is missing a text-domain. Function __, with the arguments 'Cannot import auto-draft posts'
WARNING: file_put_contents was found in the file class-merlin-downloader.php File operations should use the WP_Filesystem methods instead of direct PHP filesystem calls.
Line 41: $saved_file = file_put_contents( $this->download_directory_path . $filename, $content );
WARNING: file_get_contents was found in the file class-merlin-widget-importer.php File operations should use the WP_Filesystem methods instead of direct PHP filesystem calls.
Line 69: $data = file_get_contents( $file );
WARNING: file_get_contents was found in the file class-merlin-customizer-importer.php File operations should use the WP_Filesystem methods instead of direct PHP filesystem calls.
Line 61: $raw = file_get_contents( $import_file_path );

Demo theme Bug (TGMPA integration)

I was trying to test the demo theme and i found an bug on it.

On path york-pro/inc/admin/tgmpa/class-tgm-plugin-activation.php on line 2108, the function tests function_exists( 'york-pro' ) and if false, declare function tgmpa(...) {....

What it should do is test if tgmpa exists.

The problem:

If i have an plugin with TGMPA configured, it will try to redeclare the function and kill wordpress.

I've tried to find an repo for this theme to report this issue.

Exclude the ZIP!

Please consider putting the zip into releases.
A binary file is redundant and conflicts with a source code repo.

Override Merlin_Helper class

Hey Rich,

Firstly, WOW, this is absolutely fantastic, great work!

Issue:

Wanting to override Merlin_Helper class to change texts without modifying /merlin/ contents in theme integration.

Attempted:

Copying Merlin_Helper class to functions.php and defining class before Merlin is included.

Outcome:

Fatal Error: : Call to a member function helper_wizard() on a non-object in...

Proposal

merlin.php line 231:

if ( ! class_exists( 'Merlin_Helper' ) and true == $this->help_mode ) {

Removing the class check here means that the class can be overridden by defining in functions.php before Merlin is included. Since the class check also takes place in includes/class-merlin-helper.php I'm thinking that the additional class check in the above is un-needed.

Cheers - Tom

Bug? call_user_func_array() expects parameter 1 to be a valid callback…

I have one person out of over 5400 getting this error below, he was running PHP 5.6.3 had him upgrade to 7 still the same thing. Nobody else is having the issue so I'm sure its some sort of server config problem, but anyone know what would cause this?

call_user_func_array() expects parameter 1 to be a valid callback, cannot access protected method Merlin::post_install_check() in /home/blackfin/public_html/nestwiser.com/wp-includes/class-wp-hook.php on line 288

Plugins does`t activated

Plugins does`t activated, when the plugin is already installed but requires activation. Merlin misses the activation step.

For ex:

  1. Add any plugin in TGMPA
  2. Install it but not activate
  3. Run Setup wizard

Plugins is not activated. I understand that Merlin works for a clean installation. Very often buyers change themes but plugins remain.

Check it please. Thank you!

An error occurred during the usual installation of the plugin

Warning: call_user_func_array() expects parameter 1 to be a valid callback, cannot access protected method Merlin::post_install_check() in /wp-includes/class-wp-hook.php on line 288

How to repeat?
linux hosting, Apache, php7
Wordpress in multisite mode
open the plugin installation page
click add new
select plugin
click install
After installation, the activation screen for the network shows an error message

Plugin Wizard?

Can MerlinWP be used for setting up a plugin instead?

Template Files

Hi,

Shouldn't we take out all the html out of merlin class and make template files easy to find and edit content.

Thanks

Envato Theme Updater

Hey Richard,

Hope you are doing great.

First of all I want to thank you for doing an amazing job as an Envato Theme Reviewer and for this great project.

I played a little with the importer and it's really amazing. Can't wait for the official release to add it to my theme. It gives the user a whole different experience. When do you think of releasing it?

I also wanted to ask you, do you think of adding a theme auto updater as Envato WordPress Theme Setup Wizard? It would really be a great feature for this importer.

Best regards,
Gino

Few issues based on Theme Review Guidelines

Here are few issues I found reviewing based on Theme Review guideline.

  • PHP compatibility - Features from PHP 5.3 are used. Until WP core bumps the minimum PHP version, theme should run in PHP 5.2 also. If theme dont want to support PHP 5.2 then, there should be graceful failing and no PHP fatal errors.
  • Child theme generator is plugin territory.
  • Recommended plugin installation - I think there should be option to select/deselect plugins to install. It is not good to force users to all plugins or no plugins. Checkboxes would be good for each plugins in the list. All recommended plugins may not be necessary for a site.
  • class-merlin-importer.php - WooCommerce pages are set by default. May be we need to make the Class more generic and provide some kind of filters so that theme can customize it.
  • Redirection on theme activation - It is not allowed to redirect on theme activation. So, theme would need trigger URL to use in button. API to return Merlin URL would be great for returning such URL.

Import screen issues

Hey Rich,

I was pulling my hair out trying to find out why the users and options section on the import always failed. I thought i was doing something wrong but then noticed the included york-pro demo theme.

When i tested this on the york demo the same issue appeared. The users will never import and the options displays that it failed however it looks like all options were imported.

I'll keep testing however it looks like the user transient is never set so that function never executes, regarding the options i'm not sure what would be causing this. If you need anything else let me know.

Demo content does`t import

<?php

if ( ! class_exists( 'Merlin' ) ) {
	return;
}

$wizard = new Merlin(

	$config = array(
		'directory'                => '',
		'merlin_url'               => 'merlin',
		'child_action_btn_url'     => 'https://codex.wordpress.org/Child_Themes',
		'help_mode'                => false,
		'dev_mode'                 => NORFOLK_DEVELOPMENT,
		'branding'                 => false,
	),

	$strings = array(
		'admin-menu'               => esc_html__( 'Theme Setup' , 'norfolk' ),
		'title%s%s%s%s'            => esc_html__( '%s%s Themes &lsaquo; Theme Setup: %s%s' , 'norfolk' ),

		'return-to-dashboard'      => esc_html__( 'Return to the dashboard' , 'norfolk' ),

		'btn-skip'                 => esc_html__( 'Skip' , 'norfolk' ),
		'btn-next'                 => esc_html__( 'Next' , 'norfolk' ),
		'btn-start'                => esc_html__( 'Start' , 'norfolk' ),
		'btn-no'                   => esc_html__( 'Cancel' , 'norfolk' ),
		'btn-plugins-install'      => esc_html__( 'Install' , 'norfolk' ),
		'btn-child-install'        => esc_html__( 'Install' , 'norfolk' ),
		'btn-content-install'      => esc_html__( 'Install' , 'norfolk' ),
		'btn-import'               => esc_html__( 'Import' , 'norfolk' ),

		'welcome-header%s'         => esc_html__( 'Welcome to %s' , 'norfolk' ),
		'welcome-header-success%s' => esc_html__( 'Hi. Welcome back' , 'norfolk' ),
		'welcome%s'                => esc_html__( 'This wizard will set up your theme, install plugins, and import content. It is optional & should take only a few minutes.' , 'norfolk' ),
		'welcome-success%s'        => esc_html__( 'You may have already run this theme setup wizard. If you would like to proceed anyway, click on the "Start" button below.' , 'norfolk' ),

		'child-header'             => esc_html__( 'Install Child Theme' , 'norfolk' ),
		'child-header-success'     => esc_html__( 'You\'re good to go!' , 'norfolk' ),
		'child'                    => esc_html__( 'Let\'s build & activate a child theme so you may easily make theme changes.' , 'norfolk' ),
		'child-success%s'          => esc_html__( 'Your child theme has already been installed and is now activated, if it wasn\'t already.' , 'norfolk' ),
		'child-action-link'        => esc_html__( 'Learn about child themes' , 'norfolk' ),
		'child-json-success%s'     => esc_html__( 'Awesome. Your child theme has already been installed and is now activated.' , 'norfolk' ),
		'child-json-already%s'     => esc_html__( 'Awesome. Your child theme has been created and is now activated.' , 'norfolk' ),

		'plugins-header'           => esc_html__( 'Install Plugins' , 'norfolk' ),
		'plugins-header-success'   => esc_html__( 'You\'re up to speed!' , 'norfolk' ),
		'plugins'                  => esc_html__( 'Let\'s install some essential WordPress plugins to get your site up to speed.' , 'norfolk' ),
		'plugins-success%s'        => esc_html__( 'The required WordPress plugins are all installed and up to date. Press "Next" to continue the setup wizard.' , 'norfolk' ),
		'plugins-action-link'      => esc_html__( 'Advanced' , 'norfolk' ),

		'import-header'            => esc_html__( 'Import Content' , 'norfolk' ),
		'import'                   => esc_html__( 'Let\'s import content to your website, to help you get familiar with the theme.' , 'norfolk' ),
		'import-action-link'       => esc_html__( 'Advanced' , 'norfolk' ),

		'ready-header'             => esc_html__( 'All done. Have fun!' , 'norfolk' ),
		'ready%s'                  => esc_html__( 'Your theme has been all set up. Enjoy your new theme by %s.' , 'norfolk' ),
		'ready-action-link'        => esc_html__( 'Extras' , 'norfolk' ),
		'ready-big-button'         => esc_html__( 'View your website' , 'norfolk' ),

		'ready-link-1'             => wp_kses( sprintf( '<a href="%1$s" target="_blank">%2$s</a>', 'https://wordpress.org/support/', esc_html__( 'Explore WordPress', 'norfolk' ) ), array( 'a' => array( 'href' => array(), 'target' => array() ) ) ),
		'ready-link-2'             => wp_kses( sprintf( '<a href="%1$s" target="_blank">%2$s</a>', 'https://themebeans.com/contact/', esc_html__( 'Get Theme Support', 'norfolk' ) ), array( 'a' => array( 'href' => array(), 'target' => array() ) ) ),
		'ready-link-3'             => wp_kses( sprintf( '<a href="'.admin_url( 'customize.php' ).'" target="_blank">%s</a>', esc_html__( 'Start Customizing', 'norfolk' ) ), array( 'a' => array( 'href' => array(), 'target' => array() ) ) ),
	)
);


function norfolk_demo_import_files() {
	return array(
		array(
			'import_file_name'           => 'Demo Import',
			'import_file_url'            => 'http://vlthemes.com/demo_content/norfolk/demo-content.xml',
			'import_widget_file_url'     => 'http://vlthemes.com/demo_content/norfolk/widgets.json',
			'import_customizer_file_url' => 'http://vlthemes.com/demo_content/norfolk/customizer1.dat',
			'import_notice'              => __( 'A special note for this import.', 'your-textdomain' ),
			// 'preview_url'             => '',
		),
	);
}

add_filter( 'merlin_import_files', 'norfolk_demo_import_files' );

var_dump(norfolk_demo_import_files());

No php errors, no errors in console log, nothing. Demo import started and after a few seconds ended.

GIF -> http://take.ms/acql8

Can you check this config file?

Thank you!

Error with version bump

Looks like the latest version bump is missing single quotes around the version number.

Fatal error: syntax error, unexpected '.1' (T_DNUMBER) in /merlin/merlin.php on line 141

if ( ! defined( 'MERLIN_VERSION' ) ) { define( 'MERLIN_VERSION', 1.0.1 ); }

should be

if ( ! defined( 'MERLIN_VERSION' ) ) { define( 'MERLIN_VERSION', '1.0.1' ); }

Notice : ob_end_clean(): failed to delete buffer!

Great ui/ux for installing themes and plugins smoothly! 💯

In merlin installation page found this issue on wp_debug mode true.

Notice : ob_end_clean(): failed to delete buffer. No buffer to delete in /**/york-pro/inc/admin/merlin/merlin.php on line 351

Thanks! 👍

Setting Different Homepages and Slider Revolution for Multiple Demos?

Was looking through the filters and I see its possible to set "Home" or a custom page title as the front page, however, it would be nice to be able to set this on a per demo basis within the array, for example:

Adding the following:

import_home_page_title
import_slider_revolution

    array(
			'import_file_name'           => 'Vacation Rentals Slider',
			'import_file_url'            => 'http://www.your_domain.com/merlin/demo-content2.xml',
			'import_widget_file_url'     => 'http://www.your_domain.com/merlin/widgets2.json',
			'import_home_page_title' => 'Homepage Agent',
			'import_slider_revolution' => 'http://www.your_domain.com/merlin/listing-showcase.zip',
			'import_redux'               => array(
				array(
					'file_url'    => 'http://www.your_domain.com/merlin/redux_options2.json',
					'option_name' => 'redux_option_name2',
				),
			),
			'import_preview_image_url'   => 'http://contempothemes.com/wp-real-estate-7/multi-demo/wp-content/plugins/aqua-style-switcher/images/screenshots/vaca-slider-screenshot.jpg',
			'import_notice'              => __( 'A special note for this import.', 'your-textdomain' ),
			'preview_url'                => 'http://contempothemes.com/wp-real-estate-7/vacation-rentals-demo',
    ),

RC 1 errors

[28-Feb-2018 14:13:51 UTC] PHP Notice: Undefined index: selected_index in
\merlin\merlin.php on line 1349
[28-Feb-2018 14:14:00 UTC] PHP Notice: Undefined index: selected_index in
\merlin\merlin.php on line 1349
[28-Feb-2018 14:14:00 UTC] PHP Deprecated: Non-static method Merlin_Widget_Importer::unset_default_widgets() should not be called statically in
\merlin\includes\class-merlin-widget-importer.php on line 23
[28-Feb-2018 14:14:00 UTC] PHP Warning: Missing argument 2 for add_action(), called in \merlin\vendor\proteusthemes\wp-content-importer-v2\src\Importer.php on line 516 and defined in \wp-includes\plugin.php on line 398
[28-Feb-2018 14:14:00 UTC] PHP Notice: Undefined variable: function_to_add in \wp-includes\plugin.php on line 399

p.s. Merlin configure to import 3 local demo
p.p.s. test on php 7 apache OpenServer

Class not found

PHP Fatal error: Uncaught Error: Class 'ProteusThemes\WPContentImporter2\Importer' not found in \wp-content\themes\itcode\inc\merlin\merlin.php

Feature Request: From $this->directory . '/merlin to $this->directory . '/

Hi.

Just checking out Merlin (good name by the way since it is very magical like :D), which seems rather awesome and insightful of you as the Wordpress onboarding process, I agree lacks much actual "onboarding" from Wordpress itself and/or with the use of multiple other plugins.

In just getting started, I was hoping that the paths were a little more white labelish, meaning not needing to have the actual merlin directory in my theme. The wording of merlin is not consistent with my theme's folder naming. So all seems well with the very small adjustment in the screenshots below.

Thought I would mention and suggest, if you feel fit for the context of your plugin. Thank you! And cheers to forward success of your magical like ideas and solutions. #Salute

image

image

Example of a successfully implemented merlin_ajax_activate_license() filter

Hey @capuderg, licensing looks great.

There's just one bit I'm running into while trying to implement a filter for the license activation. Essentially, I have my theme license options setup a bit different, under one option, as such:
screen shot 2018-03-19 at 11 11 23 am

Here's a gist of what I'm trying to implement, though I'm running into a TypeError: null is not an object (evaluating 'r.success') JS error upon trying to activate a license.

Am I approaching this wrong? I'd appreciate any insights!

Ability to log or view issues with importing options

Not sure if i have missed a setting within merlin. But when testing merlinwp in my theme the options import goes red and i'm unable to see what could be causing the issue, is there a way to log when the import fails?

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.