Let’s talk about the WordPress Registration Process.
So, the little tidbit (or intro post – whatever you want to call it) in making Membership sites that I posted a little bit ago was apparently a “tantalizer.” People are wanting to know more… more “meat” I guess you could say. It’s funny, so far, this year “membership” sites, or “restricted access” sites are pretty much all I’ve done this year (and the end of last) so I’m getting more and more into it.
Now, I haven’t used a lot of stuff when it comes to doing the whole registration process – which is a big thing for membership sites of any kind. I know how to create my own forms – and I did, for a loooooong time, because I couldn’t find a form plugin that I liked well enough (because – as always – I was restricted to what the plugin author thought I should have it as, instead of what I wanted). So I can say that you can create a custom registration form script for your WordPress site from scratch. But it’s NOT EASY. In fact, it tends to lean to the “migraine inducing nightmare” end of things. This is why, aside form my own custom code, I’ve switched to Gravity Forms.
Now, please understand, I’m not an affiliate in any way shape or form of the plugin. I just love it. Love to use it, so glad I found it, blah blah blah. I recommend it to everyone. It just makes life so much easier.
The problem with Gravity Forms is, if you want to use the Registration Add-On and/or the PayPal Add-On, you have to buy a developer’s license. And unless you’re a developer, well… that’s a nice chunk of change out of pocket. As a developer, it’s totally worth it. But if you’re interested in getting Gravity Forms for your one membership site (that you plan to handle on your own) it’s probably not an option for you.
Unfortunately, because these are the only two options I’ve used, I can’t really comment on other methods. I know there are plugins out there that will allow you to customize registration, and some that will allow users to register and be created (and wait for manual approval before gaining access), but I have no recommendations or opinions on those. I think it would be unfair of me to even try.
So the sad news is, this tutorial is a bit one-sided, since it’ll focus on the use of Gravity Forms. (I’ve actually rewritten this post 4 times already, because I seriously considered making it one to show you how to do it from scratch, but when I say it’s a headache to do it, I’m not kidding. If there’s enough interest, then I may show how it’s done in the future, but I’ll only do it if people really REALLY want to know.)
The problems.
There are several problems with Membership sites that people have trouble solving. in the registration process alone, there’s quite a few. So I’ll go over them quickly.
- Creating an actual form that has a ton of info not natively handled by WordPress – how do you take the info from the form and save it to be handled later on?
- What do you do when you want to have paid membership registrations?
- If the form handles the info and creates a user, how do you prevent the user from gaining access before they’ve been approved?
- Even if you can do the above, how do you prevent end users from bypassing your setup (i.e. manually typing in the wp-admin or wp-login URLs in the address bar and just clicking “lost password?” to issue themselves a password.)
- In relation to the above, how do you “hide” the back-end from non-administrators?
So most of the issues above can be addressed by using Gravity Forms and the User Registration Add-On (and the PayPal Add-On, if you want paid memberships). But as I said before, you can handle the rest of the issues by combining this with the Theme My Login plugin. These are really the only two plugins you need. (Another plugin you might be interested in is User Messages – but I’ll cover that some other time.)
Gravity Forms
Now this is just a simple overview. I got all excited when I discovered exactly how awesome Gravity Forms is when it comes to customization – there’s so much stuff you can do with it. But this is just a quick overview of a Membership Registration process, so I don’t want to get too far off-tangent. I’ll cover the other goodies in another post some other time.
But Gravity Forms is dead-easy – it’s all drag-and-drop. Create your fields, build your form, and save it. Once you’ve saved your registration form, you want to navigate to “Forms > User Registration.” Then you “map” the fields you created in the form to WordPress’ default fields. Any extra fields you have (that WordPress doesn’t have natively) you simply create a custom field for it (give it a good name, with underscores and no spaces) and it’ll save them all as an array in the usermeta table, which you can pull out later with some custom WordPress functions.
You’ll also want to be sure you uncheck “Send Password to User” (in Gravity Forms – but you want your WordPress site settings at “anyone can register”) if you want to have admin approval for each person that registers – that’ll give you the option if setting the registration default to “pending.” This is important, because if you don’t do this, then the end user can bypass user approval by simply clicking “Lost Password?” and it’ll email one to them. Having the new registrant set as “pending” creates the user without giving them a password, and filling in the “Lost Password” field will result in nothing happening until you’ve actually approved the user. When you do that, you simply go to their profile page, change their user level, and supply a password. (With my clients, I simply have them do that, then email the end user that they’ve been approved, and pass them the link to the “Lost Password?” field so they can create a password themselves. I also find it very useful to add the Better WP Security plugin to sites, because this plugin can force the end user to create a strong password, instead of something lame and easy to hack.)
Using Theme My Login
I’ll tell you in another post how to use the registration information once you’ve got it – that dives into some other stuff. Since we’re focusing on the registration process itself, I’ll tell you how to set it up so you don’t get any weird users who have managed to bypass your pretty registration form.
The Theme My Login plugin does a great job of this (doesn’t cover 100% of the issues, but it sure does take care of about 99.9% of them!). When you install and activate the plugin, go to the settings and first, attack the modules. The ones I always use are: Enable Custom Redirection, Enable Security, Enable Themed Profiles, and Enable User Moderation.
The Redirection part is what’s really nice. You can go through each user level, and set what you want to have happen when the end user logs in and logs out. I leave “Administrator” at “default”, which means when they log in, they’re taken directly to the dashboard in the back-end, and when they log out, they’re taken to the “log in” page.
For all other levels, I set them to the same thing for both log in and log out: “referer”. This way, no matter what page they are at when they decide to log in (or log out) the site will return them to that page once they’ve performed the desired action. I had one client that liked the end user to be returned to the home page when they logged out, so that’s an option as well – just put the URL you want them redirected to in the input box (the last choice).
Security doesn’t really have much to do with registration, other than locking someone out when they’ve tried to bully themselves in. If you have Better WP Security installed and activated, you really don’t need this, but the option is nice.
Moderation is just another level of making sure that the end user does NOT get a password (and therefore access) until you, the administrator, has approved the user.
Themed Profiles is nice, as well – because it allows the (approved) end user to go in and edit their profile without ever seeing the back end of WordPress. Since the “member” is usually a subscriber, there’s really no need for them to ever have access to the back-end anyway, so it’s a really nice touch.
This plugin also allows you to edit the template files for it easily: simply find the template file you want to edit, copy it, and save it (with the same name) in your own theme. The plugin will look for the template in your theme first, and revert to the plugin default if one isn’t found – which is very similar to how WordPress theme files work.
I tend to open up the login-form.php, lostpassword-form.php and profile-form.php files and do my magic there. I will change the “Register” link to point to the Gravity Forms registration page I created (so any time anyone clicks “register” it’ll take them to the proper registration form – if you don’t change it here, it’ll take you to the WordPress default registration page, and we don’t want that!)
Theme My Login does a terrific job of redirecting anyone who wants to log in to the proper non-WP back end page, but those little links in the bottom WILL take you to the default WP area unless you change that “register” link to point to your Gravity Forms registration page. But the plugin still will not stop people from manually typing in the address and accessing it. To stop it, all you need to do is add this teensy code snippet to your functions.php file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
add_action('init','possibly_redirect');
function possibly_redirect() {
$thispage = $_SERVER['REQUEST_URI'];
$register = site_url('/register');
if(strpos($thispage, 'action=register') !== FALSE) {
wp_redirect($register);
exit();
}
}
What this does is look for “action=register” in the URL (because you can pretty much take ANY url in the WordPress site, add “action=register” to it, and it’ll take you to the registration page) and if it’s found in the manually-typed URL, it’ll redirect the end user to the page set for $register.
Problem solved.
You’ve now set up your custom registration form, for manual admin approval, and kept the bad guys from getting in when they should not.
Paid Memberships
So the only question left to solve is “what about paid memberships?” The answer is, again, Gravity Forms, using the PayPal Add-On. However, there’s something a little more important than just “how to”… it’s “what’s your process?”
Now, one client I did this for had a process for paid memberships that I didn’t like – but that’s just me. I tend to think about the end user experience a lot. What they did was have the end user fill out a form, and it would redirect them to PayPal, where they would pay for their membership, and then wait to hear if they were approved. I thought that was a weird process – because what if they weren’t? What if the approval was rejected? They’d have to wait for a refund, and then who eats the PayPal fees? It seemed lik a bad idea for the business to eat the fees – they get nothing out of it and are losing money, and it’s not fair for the end user to eat them, because they paid on good faith. (I found out later that if a refund is issued, there are no fees – but I didn’t know that at the time.)
But that was the process that worked for them, and apparently no one but me has complained yet! So definitely think about what your process for paid memberships will be. Do you want the end user to pay upon registration submission? If so, will they be given instant access? or will you want approval first? Will you issue a full refund if you reject them? Or, would you rather review the registration, and then send them an invoice at a later time to have them pay for their approved membership, and have the password stuff sent to them after they’ve paid?
It all makes a difference in how you set up the Add-On (or if you set it up at all! If you choose the last option, you probably don’t need it!)
So hopefully that helped a bit – giving more insight into the whole custom registration process. I’m sure – if you decide not to use Gravity Forms – that there are other registration options out there. Just, like I said, I’ve never used them, so I don’t think it’s fair for me to comment on them. But there’s a few tidbits up there that I think will be useful for any custom registration process.
Soon I’ll be posting some other goodies on the whole “Membership” process and some of the stuff I’ve worked on – and hopefully that will help, too!
Finally! An Update!
So you may see that things are finally updated around here. Just passing some information: I still have a few bugs to work out. I.e. there’s some old stuff in here that isn’t using the cool new FV Code Highlighter plugin (which I am ADORING so far – makes things so much easier!), and I still haven’t browser-checked this puppy. I cannot imagine what it looks like in Internet Explorer.
So I’ll be knocking out those issues as fast as I can, but I just couldn’t wait to actually put this puppy up. My old site needed a redesign in the worst possible way.
Anyway, just be aware that there still may be a few kinks you’ll run into here and there while I work things out. They’ll be fixed though, I swear it. (and in as little time as possible.) I’ve also got some great content lined up – it’s about time I’ve updated the blog posts here – so there’ll be some posts coming soon with some yummy tutorials for you to dive in to.
WordPress and Memberships
Oh, this was something I was going to save for my redesign. I’m about 98% finished with my website redesign (which is SO BADLY needed – but you know the whole thing about cobbler’s children and all), and this tutorial was going to be one of the first new items I put on the blog. However, I’ve found myself, over the last couple of weeks, hearing the same question asked over and over again (with different words of course – they think they are asking a different question, but they aren’t) and me answering it the same way over and over again.
As to this one point, I do not blame anyone for asking the same question over and over again,because I can understand how they think their situation is different. So hopefully no one thinks I’m a big, fat meanie that’s “venting about complainers” or something – because I’m totally not. I’m just tired of typing the same answer a lot, so I figured I’d put it one spot so I can just link to it and save my fingers from cramping!
Okay, so the question is this: “What’s the best plugin for turning WordPress into a membership directory?” (or another variation: “How to do keep [insert some page or file name here] from being accessed by people who shouldn’t have it?” There’s many more variations, but I think you get the idea.)
It’s actually a LOT easier than you think, and it really doesn’t require an extra plugin. Don’t get me wrong, an extra plugin will help (especially with more advanced variations on the theme), but it’s not necessary. Really, you just need one single function that is actually already a standard part of WordPress core: is_user_logged_in().
Basic Form
Now, your most basic requirement would be to, say, keep a section of your site from being viewed or indexed by Google. Be it a single post, or Page, or an entire section (like a whole category, or custom post type, or a set of Pages – what have you): the above function is pretty much all you need. Most people’s first line of thought is to make a Page or a post, and then password-protect it.
That’s fine, but there’s a big problem with this: you have to add a password to each individual Page or post you want to do this to. So if you password-protect several Pages, that means when someone goes to view it, they have to enter in a password for every. Single. Page. (A second quasi-issue is, you have to remember the password. WordPress doesn’t provide a way to “remember” or show passwords you’ve set on posts, so if you forget, you have to reset the password – then everyone who has it saved has to re-save them again.) So annoying. End user experience: shot.
There’s so many other ways to accomplish it, too, but if you already know what section it is that you want to have “protected”, and you know no more sections will be added to it, you can simply add the above function to your theme file (index.php or content.php – whatever it’s named that actually pulls in the content). Basically, you just want to find <?php the_content(); ?> and replace it with this:
1 2 3 4 5 6 7
<?php
if(is_page('Some Page Name Here') && is_user_logged_in() == TRUE) the_content();
else echo "You must be logged in to view this page.";
?>
That’s pretty much the simplest form of doing it right there. Basically it checks to see if the user is logged in, and if they are, it’ll show the content, if not it’ll tell you that you need to log in. BAM. Done.
You can use this function with current_user_can() and even associate content with the user level as well, for, say, doing “tiered membership levels”.
Of course there’s TONS of variations on this theme. For example, if you’d like to dynamically adjust what’s seen and what isn’t (i.e. there’s posts or Pages in the future where you’d like them to be hidden), you could do something as simple as adding a custom field (or a category, or a custom post type) that you can check a box to keep it hidden, and have the theme look for that flag. An example of this:
1 2 3 4 5 6 7 8 9
<?php
$members_only = get_post_meta($post->ID, 'members', TRUE);
if($members_only == 'yes' && is_user_logged_in() == TRUE) the_content();
else echo "You must be logged in to view this page.";
?>
This is such a cool process because it negates the need for password-protected pages and stuff – you no longer need that extra step. If someone’s logged in, they see it – if they aren’t, they won’t.
Now I just did a site where there was full-on paid membership requirements for the WordPress site. This is the part where you could roll your own code (and believe me, I have before – and I can tell you how, but that’ll be a tutorial all on its own for another day), but why reinvent the wheel, right? What I did was simply use two additional plugins: Gravity Forms and Theme My Login.
Note that Gravity Forms is not free – but I tell you it’s worth the price, ten times over. And no, I have no affiliation with them to try and sell it to you. Buy it or not, I don’t care – I get nothing either way. But I’m extremely happy with them, and I recommend them highly!
Theme My Login isn’t required, but I’ll tell you why (later) it’s a nice addition that will solve some issues that will crop up.
Gravity Forms
The reason I like Gravity Forms is because you can easily create a really customized form – it’s DEAD easy. Drag-and-drop, baby. It even allows you to roll up your sleeves and add some customizations to it that require coding and filters, if you are so inclined. So if you’re running a membership site that requires the applicant to, say, provide an address and phone number, you can use Gravity Forms and the Registration Add-On and you’ve got yourself a full-on membership plugin. (You can also use Gravity Forms as a paid membership plugin, using the above add on as well as the PayPal Add On, but you have to have a developer’s license for the PayPal addition, which may be out of the price range of some people. But since most people that read my stuff are developers, then that probably isn’t the issue. You’ll make your money back hand over fist.)
I’m not going to do a step-by-step on how to use Gravity Forms and the Registration Add On (because there’s already tons of that out there – you basically just create the form and map it to user fields – I don’t need to add another tutorial to the saturated list.) But once you get the form created and mapped, you’re set to have members go to that page and apply to join up. The information from the fields is mapped to some of the WordPress profile defaults and the rest is popped into the usermeta table (so you can access it later, say, for a member profile page).
I’m going to put in a note here: a lot of people like “membership directories” as well. Gravity Forms has a “directory add on” that’s available – it’s something someone created to work with Gravity Forms, but it’s not developed or handled by the Gravity Forms people itself. I tried it, initially, and it works pretty nicely. But if you want a customized directory (or one that shows more information the higher you go up the user level chain) it’s not a good solution. I have nothing against the Add-On itself, it really does work as advertised, but when I needed to get it customized to suit the project I was working on, I ended up coding out my own. (Hey! another tutorial for later!)
Now, you could stop there. But there is an issue that will happen if you do: the default WordPress login page will still exist, and people can still have access to it if they know where it is. Considering “allow registrations” must be activated to…you know…allow people to register, that means if someone knows where the default login form is, they can manually type in that address, bypass your sweet form, sign up and done. They’ve bypassed everything, and become a member without your approval.
This is where Theme MyLogin comes in handy. You can set this plugin up and it’ll take over, and it’ll format your login page to look exactly like the front end of your site. You can set it so, when someone logs in, they will never, ever, ever see the back end – not even to edit their profile page (if you activate the “Theme My Profile” portion of the plugin). In the site I did, I had this setup for everyone except administrators – they would redirect to the back-end of WordPress if they were logged in. All other user levels would redirect to the page they were at before they logged in.
Using the two plugins together really makes for a nice “membership” website that really is simple to create. (Add on Events Manager and you can have events for members and public events that people can pay for tickets and RSVP to as well! Again, no affiliation – just like it.)
Downloadable Files
Another issue is that some people simply want to keep a file download private. This is a bit more difficult than just restricting Page/post content. If someone actually does access the file (legitimately) and they link to it from somewhere, there’s nothing to stop them from directly linking to the file itself, since they know the URL. And if it’s emailed – especially through a gmail account – fahgeddaboudit. Google will index it (Gmail = Google – yet another reason to not send passwords and login info/sensitive data through email!), and next thing you know it’s showing up in Google search.
So what do you do?
There are different solutions (as far as file downloads go). Now, you can find a plugin that will protect these files – I know a lot of people who like LinkLok. There’s also a few plugins in the repository that look promising. But you can also do a couple of things yourself if you like (and don’t want to depend on a plugin). One thing is to place the images above the public root of your directory (with some hosts, the public directory is “www” or “public_html”) – when you do that, people can’t link directly to it (or type in a URL to access the file) since it’s a level above public access. Then you can create your own method of allowing permitted users to access the file by using a bit of PHP code. Now, this method requires that you FTP into our server to upload the files you want to add, which is one option. But you can also create a little admin page for yourself where you can upload this stuff and handle it through the WordPress back-end, and it stays out of your Media stuff (it’s all nice and compact, in one spot, away from all the other stuff.) – which actually…
I’m so bad! I thought I’d published that as a tutorial some time ago, but I guess I’m wrong! So I suppose I have something new to write about at a later date!
In any case, using a plugin (or adding something like LinkLok to your site would help alleviate the issue of keeping downloadable files secured
It really is that easy.
You don’t need to go purchase big membership plugins, or pay out the nose to make some content visible to some while hidden from others. It’s already built in to WordPress to allow that to happen. With just a couple of extra additions, you’ve got yourself a nice little membership site with everything you need
Hopefully this will be a help to someone!
And yes, I swear I’ll put up the other promised tutorials – but really, don’t make me do it until I get my redesign finished!
wp_logout_url()…. AGH!!!
So I’m working on a site right now that incorporates the new bbPress plugin with WordPress. I’m testing the login/logout process, and since it’s now a plugin (instead of a standalone) you can use your WordPress logging for both things (the site and the forum).
So I’m putting in a link for the logout url, via wp_logout_url(), and I’m following the Codex instructions for the redirect. but as I continue testing, I realize that the redirect isn’t working. Hmm. So off to the forums I trot.
And discover that this isn’t a new issue.
So I start picking things apart. After a gazillion times of logging in and out, I realize a single weird thing: when I log out, it’s adding in a new directory. So this is why none of my code is working, and why it keeps going to a 404 page. (Let me ‘splain, Lucy.)
The site url is http://localhost:8888/somesite.
When I log out – well first off, it’s completely ignoring the redirect, and redirecting to the page you’re already on. Doesn’t matter if you’re using get_bloginfo(‘home’); or home_url(), or site_url() in there – even if you hand-code the home URL (or any other URL for that matter) in there, it’s ignored. What it ends up doing is, when you log out, the URL it redirects to is this (assuming the page you’re on when you log out is “somepage”):
The site url is http://localhost:8888/somesite/somesite/somepage?loggedout=true
It took me a few times to realize that “somesite” was being put in there twice. Well no freaking wonder it wasn’t working.
So of course I did what I always do. I could have put in a hack and hard-coded the link (or other methods), but the wp_nonce_url would not be there, and I’m a safety gal. So after about 20 minutes of logging in and logging out after each code tweak, I found a solution.
I present it to you.
The original function in WordPress core (in wp-includes/general-template.php) is like so:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
function wp_logout_url($redirect = '') {
$args = array( 'action' => 'logout' );
if ( !empty($redirect) ) {
$args['redirect_to'] = urlencode( $redirect );
}
$logout_url = add_query_arg($args, site_url('wp-login.php', 'login'));
$logout_url = wp_nonce_url( $logout_url, 'log-out' );
return apply_filters('logout_url', $logout_url, $redirect);
}
After major tweaking, I found that the last line is causing the problem. Remove it, and pop it outside the function, and it works like it’s supposed to. So if core were like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
apply_filters('logout_url', 'wp_logout_url')
function wp_logout_url($redirect = '') {
$args = array( 'action' => 'logout' );
if ( !empty($redirect) ) {
$args['redirect_to'] = urlencode( $redirect );
}
$logout_url = add_query_arg($args, site_url('wp-login.php', 'login'));
$logout_url = wp_nonce_url( $logout_url, 'log-out' );
return $logout_url;
}
it works a treat.
Now I’m never one to recommend editing core. Never never never. But when you have an issue like this, you can basically just do it anew in your functions.php file (within your theme), and if the WP devs fix it (or not) you never have to worry about losing the fix. So if you rename the function above and pop it into your functions.php file, then you’ll be all set. i.e.:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
apply_filters('logout_url', 'my_fixed_wp_logout_url')
function my_fixed_wp_logout_url($redirect = '') {
$args = array( 'action' => 'logout' );
if ( !empty($redirect) ) {
$args['redirect_to'] = urlencode( $redirect );
}
$logout_url = add_query_arg($args, site_url('wp-login.php', 'login'));
$logout_url = wp_nonce_url( $logout_url, 'log-out' );
return $logout_url;
}
Then, wherever you were planning to use wp_logout_url(), use my_fixed_wp_logout_url() instead. Yay!
Back End Instructions – official release
So, you might remember, back in August, I wrote a plugin called “Back End Instructions” and popped it on my site for you all to freely download and use, if you wanted. If you recall, the plugin is for those of you who have a lot of clients that utilize WordPress, and you’ve written a custom theme for them, but no matter how many times you send instructions or answer their questions on how to use it, they still keep asking you.
I’ve discovered that the reason clients do this is because (and no offense to clients – we live in an “instant gratification” age right now) it’s easier to just call you and ask when they forget how to do something than search for the last time they asked you and you provided that answer. You can send them written instructions or answer their questions with meaningful subject lines in email (so it’s easy to find), but they’ll still just call you when they forget instead of looking to see if the question’s already been answered. They want something that’s right there, in their face, and they don’t have to go looking for it.
So I came up with this plugin, and I tell ya, it’s been a lifesaver. It’s very unobtrusive, but there when you need it. basically, it uses the Custom Post Type functionality of WordPress to display instructions on any page you want within the administrative end of the WordPress installation. Not only can you create posts for each individual page of the site, you can customize said instructions so they only show for certain user levels – so people with “Contributor” levels won’t see the extra info that applies to Admins.
You can use written instructions, audio, video – anything you like. It’s just like writing a regular post – the only difference is it shows up in the back end of the site.
I’m getting ready to plop this into the WordPress Plugin Repository for people to download and utilize, but I figured I’d go ahead and write a little sumthin’ sumthin’ here on my site about it, so that’s in place when people have any questions.
Now, please note, this is the most intensive plugin I’ve ever written, and I’m not 100% sure how the whole “upgrade notification” thing works. I dont’ know if the WordPress system just suddenly tells you that a new version is available for download, or if I have to put in special code for that to happen. I’ve never quite found a 100% assurance on the issue, so I’ve given up and I’m just going to try it and see.
Back End Instructions
Tested in WordPress 3.0.x – 3.1.2
initial indications show that it also works in MU mode – but this isn’t fully tested.
if you downloaded the plugin back in August and have been using it, then I will ask you now: please download this new version, an you might have to FTP into your system and see if you have 2 copies. I’ve renamed the folders and such so many times since my last iteration that it’s probably best if you just delete the old plugin files, and grab these new copies and put them in. (Don’t worry, your already-existing instructions won’t be touched – they’ll still be there.)
There’s an extensive readme file in the download that will most likely answer any questions you might have – so I’m not going to copy the whole thing here. Instead, I’ll give you the highlights and some basic instructions, and let you run off with the readme file for the more in-depth stuff.
So, after you’ve installed and activated the plugin, you’ll see a new menu item show up to the left side, called “Instructions”. When you go there, there’ll actually already be a new post, and when you look to the top, there’s a new little tab on the page that says “View Instructions for this page”. Click it, and you’ll see this quick little video:
That gives you a quick run-down of how it all works. But what I didn’t mention in the video (sorry, it took me something like 15 tries to get that one done. I’m not doing it again LOL) was that if you’re not using self-hosted, YouTube or Vimeo for the instructions, you can just use the regular post content area and pop the videos in there. For example, if you go to WordPress.tv and find a video you’d like to have your client see, you can just click the “Share” link (in the upper left-hand corner) choose the HTML code” and paste it into the content area. As long as the “Video URL” field is blank, it won’t overwrite what’s in the regular content area, and you can still see the video. Just be sure you’re in HTML-writing format, because if you’re in “Visual” it’ll strip the code and it won’t work properly.
Please, if you have any questions, or have some idea on how I can improve this, pass it along. I really want this to be useful for people
Enjoy!
Adding in changelog info. I never thought to do this before, so I’m just gonna start with the one I just uploaded – version 0.8.
0.8 I’ve fixed the issue where you can’t make the instruction show up on a specific page. Now you can make it show up on a “general” page or a specific one. For instance, if you want the instruction to show up on ALL “add new post” pages, you just pop in “post-new.php”, and the instruction will appear on any of them. But if you want a specific page, then look in your url and add everything after the last “/”.
I’ve had many requests to make the stylesheet easier to control, and not make upgrading overwrite your changes without saving. Now you can. Just create a file (“bei_style.css”) and pop it into your theme directory, at the same level as the style.css file. You can style as you wish without worrying about things getting overwritten.
Now you don’t need an additional plugin to his the menu item from lower levels. Administrators and Editors will be able to see the menu item in the sidebar, but lower levels will not. (If you’d like it to be Admins only, easy fix – but remember, upgrades will change any edits you make): in bei_post_type.php, line 13, change if(current_user_can('edit_others_posts')) to any of the admin capabilities here (for example, if(current_user_can('update_core')) will swap it to Admins only).
For future releases, I’m considering creating an administrative settings page that allows you to set your stylesheet and choose what the lowest level is to view the menu, but for now I’m not sure that’s really all that important. I’m also working on a version that stops relying on Jing, and uses HTML5 Video instead – then you have more options to play your videos instead of being stuck with Vimeo, YouTube or SWF files.
I’m halfway through it, and disappointed
Here it is, June 6th, and I’m roughly halfway through my sabbatical – and quite disappointed in my progress thus far. I have managed to fall back into the old habits that I’ve been trying to change, and I have not yet successfully managed to complete any of the goals I set for myself.
Wow, I didn’t realize how hard it would be to admit that.
I have allowed things to get in my way. One of the things that’s bad about me is my level of focus. It’s not that I have a bad focus when it comes to my work and clients – not that at all. (I have a sincerely disgusting work ethic.) It’s that I always let my needs (and those of my business) to fall by the wayside. I focus too intently on what I’m doing for others, and I don’t focus on myself.
It’s sort of like that thing that they say, about taking care of yourself first? Because if you don’t, you won’t be around to take care of anyone else? Like that. This is the major point about me, and the big one I really wanted to change this year. I love helping other people. I love to solve problems. I will lose sleep for someone else’s issue – and the big downside is that I do take failure personally. I tend to make other people’s problem mine to solve.
Six months into this sabbatical, I haven’t changed this behavior. I’m supposed to be taking time off and focusing on me, and my business – not for selfish reasons, but instead to make me stronger so I can continue helping others – and instead I’m still putting out fires. Like I did last year, and the year before, and the year before. My focus has shifted – yet again- to the needs of others, and placing them before mine.
And I feel so disappointed in myself for it.
I cannot figure out why I see other colleagues of mine, others who are less talented and passionate than I (yes, I do know I’m not a complete loser, and I am self-aware of my own abilities and that I do have some good points to my work aside form my ethic) soar higher than I do. No, I should not focus on how well they are doing – save to congratulate them and wish them well, which I do – and compare myself to them. But their successes are bittersweet, because I know if I’d put half as much focus on myself as they did, then I would shoot right by them and they’d be eating my dust. I’m so happy for them, but I really wish I could do half as well for myself.
As my husband says, wish in one hand…
This is a lot harder than I thought it would be. I know my obstacles, yet I feel like all I can do is stand there and look at them, and help push other people over them, because I feel guilty if I don’t. And what is really upsetting is that more than half the people I help don’t even bother to help me back, or even thank me for the assistance I give. I feel like that lonely girl in the high school halls who will do anything to make the popular kids like her, and even when they abuse her, all she wants is their respect and admiration – so she keeps getting pissed on in hopes one day they will realize her value. It’s kind of pathetic. And sad. (And amazingly, a lot like my high school daughter – wow, what a perspective!)
So that’s where I’m at – six months in. Just as lost as ever. So what do I do about it? Let’s try and turn this into a positive thing. I know what my problem is – and knowing the enemy is halfway to winning the battle against it. What I need is a strategy. I overthink. I look at all the possible actions I can take, and get frozen by which is the right one to choose. So I need to choose. I need to stop wavering, make a choice, and follow that choice unwaveringly. I need to stop deviating from my path, stop worrying about things that are not on this path.
Sounds good, doesn’t it? Yeah, it does. Now I need to see if I can must do it!
More on Goals and Success
Will Smith is one of my favorite actors.
When I was in high school, he was the “funny guy” in Fresh Prince and had some rap songs out. (I’ve never much been a fan of rap music, but at least his were amusing.) Back then, he was just another young guy who was funny, dabbled in music, etc. And then he just disappeared like so many of them do.
But when he “came back”, he did so with a vengeance. When I’d heard he’d lost everything, and didn’t give up – instead he saw it as an opportunity to start with a clean slate and apply those hard lessons – a little seed of respect began to grow for him. One of my favorite movies of his is “The Pursuit of Happyness” – and even though the movie isn’t about him, I am aware that a lot of who he portrayed is how he thinks and acts.
I’m not the kind of girl who generally fawns over actors and celebrities. Personally, I don’t really much care about what they do, and I never quite understood what the big deal is with needing to know what they do every day. To me, they’re just people doing their job. Like anyone who has a job, some do it better than others, some are lazy, some are lucky (probably due to some brown-nosing or something), and some make mistakes.
But Will Smith continues to fill that seemingly unattainable… thing that many people would like to have, and his celebrity status isn’t what makes him the way he is – I think he’d be this way even if he weren’t famous. Which I really like.
No, this isn’t just some diatribe on my fan-love of the guy. There is a point.
This morning, I was directed to this video. It’s long, but worth every minute. I have to say that nearly everything he says in the video is just a very powerful and real message that I agree with, and in some cases (okay, ALL cases), would like to live by.
When I grow up, I want to be Will Smith.
This video brings about some terrific points about success – not only in your business, but in your life. I saw a lot of my own beliefs, ethics and attitudes in his words (which you might see some of in a post I wrote back in March, as well as in a lot of the comments left on that post), and it gives me a little bit of hope that maybe I am moving in the right direction… that maybe these “walls” I keep running into are just an illusion.
This video was the boost I needed, since recently I’ve found myself slipping back into the old groove I’ve been trying to get out of. Maybe I’m not the only one – and some of you might get something out of this as well. But for me, I think I’ll be playing this for myself every time I start to feel like “I can’t” so I will change it to “I can.”
Spring must be coming, because I want to clean.
I started my sabbatical officially in October 2009. However, I didn’t tie up most of my “loose ends” until pretty much the New Year. <internal musing>I wonder if that makes it okay to say that my sabbatical actually started January 2010…</internal musing> Since then, I’ve been doing pretty much what I thought I’d be doing.
Nothing.
Ohhhh…. I know that sounds bad. (Well, except for the people that do think that the words “going on sabbatical” means “taking a year-long vacation” – they’re probably just nodding their heads and saying “and…?” LOL) But really, it’s not. It’s my personality type. Iknew I would go through a sort of “senioritis” freedom thing. But I also know that doing that – for me – is a good thing because it gets my creative juices flowing again. Like it opens the floodgates or something. And it truly has. In these past 2 months, I’ve been creative to the extreme in ways I’d never thought I would be. I’ve taken up new hobbies, and found myself staying up late at night chasing information for the next idea in my noggin. It’s been exhausting but at the same time, exciting and oh, so much fun.
Now we’re approaching March (already?!?) and I can feel spring coming. I’m in a “spring cleaning” mood. I want to get organized and really start putting my best foot forward in fulfilling the intention I set forth for this sabbatical. I feel many posts coming on in the near future as I check out new software to help keep me organized (my BIGGEST flaw – organization – or the lack thereof – will be the death of me), on track, and in the flow of things. I will finally finish trying out the things I’ve been saying I would for a very long time, like how to use the Quicken software I bough over a year ago; how to use Mod (no, seriously); and delve into the fun world of CSS3. I will also use my membership over at Daily Design to improve (and in some cases start) my edumacashun in many of the tools I actually spent a lot of money on, but never used (or used very little).
I will actually upgrade my Leopard to Snow Leopard – which I bought the day it was released and still have yet to upgrade.
Time to dust myself off and clean house. If you have any input on things you have done for yourself or your business to help streamline/organize yourself, I would so love to hear them. Please share!
Where to begin?
Here I am, it’s a Thursday morning, and I feel like I’m walking back into my office after a looooong painful holiday. That statement is partially true because I actually was away for the holidays, but the painful part is because upon my return, I came down with the flu. I did manage to make it into my office a few times, but I couldn’t do much that was worth anything (as you can see from the fever-induced ramblings of the post directly previous to this one), so I eventually gave up and went to bed for a solid week.
One good thing about being sick (yes, there is a good thing that came out of this) was that I was not distracted by the fun and activity of Twitter, Daily Designing, and emails. Instead, I was forced to basically lay there like a knot on a log and think about things – well, when I wasn’t sleeping or groaning… or other fun activities that I won’t mention here.
Here were my two major realizations:
1. I am not necessary.
This one was hard. On Monday evening, when I finally got well enough to stand longer than 10 minutes at a time without falling over, I went downstairs to check my email, which I hadn’t seriously looked at in almost 3 weeks.
I didn’t have any.
When my husband came home from work, I put my head on his shoulder and whined that nobody needed me anymore. I’m the kind of girl that doesn’t feel worthy unless I’m doing something for someone – I love to help. Getting paid to do that is just a bonus in my book.
Of course, he had to joke that I “did tell everyone [I] wasn’t working anymore…” and what else did I expect to happen?
Harsh. But true.
2. I have no clue what to do now.
By nature, I am a frazzled being. My husband says I’m a genius because of this. (There’s some saying that Leonardo da Vinci rarely finished anything he started, and was always into new stuff – my husband says that describes my personality perfectly, and by definition, that makes me a genius. I have a good husband! He’s wrong, but so sweet!) I love learning new things, trying out new adventures and walking down new, unknown trails. I’m a bit of a timid hiker – I don’t go dashing madly into the depths, but rather timidly peek around corners to be sure things are okay – but I still love doing it.
Because of my natural, inquisitive and adventurous nature, I tend to not care about what I’m getting into, and what I’m leaving behind. I just “go with the flow.”
Now I’m on this sabbatical to get organized, and channel the flow a bit to my needs, rather than riding the river without a paddle. And I have no idea where to being. I fell into this career, and I love it passionately – but it’s taking me over, and I never started where I should have started – with a plan.
So now I am lost and unnecessary. However, I’m using these two key points to try and straighten myself out. Although I’d love to be “necessary” on the level that Chris Brogan, Collis Ta’eed, Matt Mullenweg and Eric Meyer are, I don’t think I could stand the limelight
So I’ll be fine being necessary on an acceptable level – to the few that select me to be so.
Now I need to make myself a map so I can get there.
In the next few weeks/months, you’ll see this journey progress. I will be delving into the unknown (and scary) depths of productivity, learning new tools, business planning and organization – as well as life/work balance. I’m positive I will stumble and make errors. But the end result is to be better, and make myself necessary to my clients and colleagues, not only to better my own life, but theirs as well. Hopefully the things I find that help me along the way will also help you in some way, so you don’t get as lost as I do.
Because I am nothing if I cannot help someone else
Putting things into perspective
So, in these first two weeks of the New Year, I’ve uncovered a few things about myself – my limitations and expectations, and how reality is meshing with them all. Especially over this weekend, since I’ve literally been forced to sit in bed with nothing more to entertain me than my own thoughts (well, when I wasn’t spiking a fever. Dang flu.)
Number one is, this first couple of months of this sabbatical have been interesting. I’ve spawned a new level of creativity in myself that I was beginning to think I’d lost. Part of what I wanted to do on this sabbatical was to improve my skillset: by learning a new platform or two (I’ve decided to focus on ModX and Magento) and becoming skillful in tools I have, but have been reluctant to use because they are new (or I just never had the time to get better at them): Photoshop and Illustrator. In doing so, I’ve made a couple of creations (thanks to the Daily Design blog) that have been a lot of fun, and made me feel a bit better at how well I do in an old skill.
However, I’ve also been creative in other, unexpected ways. I’ve been knitting and sewing like a madwoman – and designing what is most surprising: handbags.
As a woman, you’d think I’d have a lot of interest in handbags, yet anyone who knows me will tell you the exact opposite. I detest them. Truly, the only time you’ll see me carrying one is if I’m traveling. So why I have been drawn to creating them is beyond me.
I am very happy for this creative burst, though.
However, these “upswings” in creativity have led to a downside for me, and it’s a big one. One of the BIGGEST things I’ve wanted to tackle during this sabbatical is my organization and focus. I’m the kind of person who loves trying and learning new things. If something catches my attention, I’m dazzled – like a deer in headlights dazzled. I’ve been hit by the car more than once. This burst of creativity has not helped that much – times like these are when I get so intent on creating that I just don’t care what or why I’m doing it, as long as I’m doing it.
There’s a lot more to this, but because I’m currently ill I can’t think very clearly at the moment. but I did want to come in and share. I think this is a big transitional period for me right now – and I really need to pay attention if this sabbatical is going to lead to success. I do see several more posts on this subject coming up in the near future as I try to work through things.
