Giter Club home page Giter Club logo

convertkit-wordpress's People

Contributors

corydhmiller avatar davidlamarwheeler avatar dependabot[bot] avatar ggwicz avatar growdev avatar marcboquet avatar n7studios avatar nathanbarry avatar nicholasohrn avatar tnorthcutt avatar

Stargazers

 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

convertkit-wordpress's Issues

Add notification if unable to connect to API server

There have been several tickets where a customer enters their API credentials, but no forms are displayed.

These are sometimes due to the host blocking the outbound connection. If this is the case plugin needs to display a message like (“Hey, looks like your host is blocking outbound connections… KB article)

<a> link fails when page content is displayed on index, search, or category page

I understand that the modal links are limited to a specific post.

However, it very difficult to prevent the content of that post from appearing on another page within the same Wordpress site (e.g., index, search, category pages). In those cases, clicking the link does absolutely nothing.

This is a very unfortunate user experience. I've hidden much of the links behind "read more" tags, but it's so easy to break.

Contact Form 7 mapping "None" saved as "default"

When the CF7 form mapping is set to ConvertKit Form "None" the setting is saved as "default"

screen shot 2017-03-07 at 4 15 45 pm

This is technically not 'empty' and an API form_subscribe() is fired with the API returning a big old
¯\_(ツ)_/¯

Refactor function.

MultiValueFieldTable::column_default has an illegal array key type. Either phpdoc is incorrect or function is.

Broken Convertkit Form Displays Random ASCII Characters

I used the plugin "All in One WP Migration" to migrate a WP install from one site to another. Now my site displays beautiful characters instead of the form:

image

The plugin isn't able to contact the API:

image

Also, uninstalling the convertkit plugin doesn't clear it's data. Upon a new install, my API and secret keys were already set up.

A curl command run from the server does retrieve the proper response.

What's changed?

php versions and mysql versions updated - php v 7.0 now.

The plugin's logging features leave much to be desired.

As a temporary fix, I've copied in the html of the sidebar form from the old site. However, I've left the widget below as a demonstration. It would also be nice to have the post-post forms working automatically...

Upgrade to latest embed version

Currently, we are embedding via the embed_url returned by the JSON for a particular form. We just underwent a process to update the embeds to display more consistently, adding a version attribute to not break earlier usages.

To use the new embed version, this URL to read the resource could be changed to:

https://forms.convertkit.com/{form_id}.html?api_key={api_key}&v=5

API Log not appending

The ConvertKit_API::log() method was changed to use WP_Filesystem() after the WP Coding standards audit, but this method isn't appending to the log file.

Change this to something else that will meet coding standards, yet append correctly.

Add tag user option for WishList member cancel/unsubscribe

Currently the WishList member integration offers a checkbox that will unsubscribe users when their WLM membership lapses.

screen shot 2017-05-05 at 9 40 46 am

Change this setting to a dropdown and add a list of CK account tags. When WLM membership lapses if a tag is selected then the user will be tagged and not unsubscribed.

slack-imgs

Archived forms still show up in forms list returned by API

API version: 3
API endpoint: /v3/forms

Steps to recreate

I archived all forms in my CK account and when I opened the CK WP settings page I had a list of all forms in my drop down.

Looking at the array returned from the API there is no indicator that the form is active or archived. Can a status or state field be returned so archived forms are not shown in the WP plugin?

[forms] => Array
        (
            [0] => Array
                (
                    [id] => 23887
                    [name] => Newsletter Form
                    [created_at] => 2016-02-10T02:44:21Z
                    [type] => embed
                    [url] => https://app.convertkit.com/landing_pages/23887
                    [embed_js] => https://api.convertkit.com/v3/forms/23887.js?api_key=[redacted]
                    [embed_url] => https://api.convertkit.com/v3/forms/23887.html?api_key=[redacted]
                    [title] => Join the newsletter
                    [description] => <p>Subscribe to get our latest content by email.</p>
                    [sign_up_button_text] => Subscribe
                    [success_message] => Success! Now check your email to confirm your subscription.
                )

            [1] => Array
                (
                    [id] => 24139
                    [name] => Take My Class
                    [created_at] => 2016-02-11T04:03:34Z
                    [type] => embed
                    [url] => https://app.convertkit.com/landing_pages/24139
                    [embed_js] => https://api.convertkit.com/v3/forms/24139.js?api_key=[redacted]
                    [embed_url] => https://api.convertkit.com/v3/forms/24139.html?api_key=[redacted]
                    [title] => Take My Class
                    [description] => <p>Subscribe to get our latest content by email.</p>
                    [sign_up_button_text] => Subscribe
                    [success_message] => Success! Now check your email to confirm your subscription.
                )

            [2] => Array
                (
                    [id] => 36594
                    [name] => Landing Page Class
                    [created_at] => 2016-03-28T17:17:49Z
                    [type] => hosted
                    [url] => https://app.convertkit.com/ancient-cherry-5193/HNIXGGPC
                    [embed_js] => https://api.convertkit.com/v3/forms/36594.js?api_key=[redacted]
                    [embed_url] => https://api.convertkit.com/v3/forms/36594.html?api_key=[redacted]
                    [title] => Join the newsletter
                    [description] => Subscribe to get our latest content by email.
                    [sign_up_button_text] => Subscribe
                    [success_message] => Success! Now check your email to confirm your subscription.
                )

Add logger

The plugin needs a logger to capture:

  • Error messages when unable to connect to the CK API
  • Data sent/received with API
  • Other API related data

Support php 7.0

I notice that you're building for php 5.3, but not 7.0.

Please fix that?

Shortcode backwards compatibility

I need some feedback and guidance on how to handle the use of shortcodes in this plugin to display forms.

Version 1.3.9

These are possible uses of the plugin's shortcode. Both of these uses requires the ConvertKit meta box on that page to have Form set to "None" and Landing Page set to "None" like this:
screen shot 2016-06-06 at 1 08 31 pm

  1. The [convertkit] shortcode added to a post or page will add the global Default Form to the content. If the Default Form setting is "None" no form is added.
  2. If the shortcode is used with an attribute of form then the specific form is added to the page. This attribute expects the V2 ID Example: [convertkit form='4835722']
    If the form argument does not match up with a form in the result from a call to ConvertKitAPI::get_resources() no form is shown.

Version 1.4.1

Version 1.4.1 introduces V3 API calls to the ConvertKitAPI class. The method ConvertKitAPI::_get_api_responses() now uses a V3 endpoint.

  1. The proposed shortcode update is to add an argument of id that would be the V3 form_id.
    Example: [convertkit id='23887']
  2. It is problematic to scan all posts and page content for shortcodes using the form attribute. To maintain backwards compatibility for any customers using the form attribute the API should keep a V2 endpoint call for getting the form markup.
  3. Going forward these will be valid shortcode uses:
    [convertkit] Display global form using a V3 form_id.
    [convertkit form='99999999'] Display specific form using a V2 ID.
    [convertkit id='99999'] Display specific form using a V3 form_id.

Questions

  1. Does what I've outlined sound correct?
  2. WP_ConvertKit::get_form_embed() needs some refactoring to handle these cases and it's where I'm getting hung up.
  3. I don't know if any of the attribute uses are documented either on wordpress.org or on CK.com. Is that true?
  4. (Based on answer from previous question) Do you have any idea of the number of customers impacted by the changes to shortcode attributes?

API: Check status code on API calls

In ConvertKitAPI::_get_api_response() and any other place wp_remote_get() is used, check response [status_code] and if not 200 log error and don't return [body].

This is a better fix than b47af9e

Response body from wp_remot_get is zipped

ConvertKit_API::get_resource() call is sometimes returning zipped content in the body:

    [body] => �W[o�6�~N~�� �PD�smc'��a��
ŀ���P��xdq�D��ri���CR�IGN�!�����;7��+UH�i�dq�TZwj9�S�@�Y!�;���k�l������{�6�W�tw}r��\͝���+��HQ#�uR�f��

Add check for this and inflate if needed.

Update use of transient

Several customers have reported that they will add a form in ConvertKit, then go to their WP site and look for it on the settings page.
The settings page uses a transient for the API call so it might take up to 5 minutes for the form to refresh.

Either:

  1. Add a way to clear the transient or
  2. Do not use transient if on the admin settings page

Reduce API calls in WP Dashboard

Currently _get_api_response is being called every page load in dashboard. Refactor to not load during reister_widgets, or use transient.

Remove extract()

Remove use of extract() from WP_ConvertKit::get_form_embed().

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.