| @@ -28,72 +28,15 @@ | ||
| 28 | 28 | */ |
| 29 | 29 | public $type = 'forms'; |
| 30 | 30 | |
| 31 | 31 | /** |
| 32 | - * Constructor. | |
| 32 | + * Holds the forms from the ConvertKit API | |
| 33 | 33 | * |
| 34 | - * @since 1.9.8.4 | |
| 35 | - * | |
| 36 | - * @param bool|string $context Context. | |
| 34 | + * @var WP_Error|array | |
| 37 | 35 | */ |
| 38 | - public function __construct( $context = false ) { | |
| 36 | + public $resources = array(); | |
| 39 | 37 | |
| 40 | - // Initialize the API if the API Key and Secret have been defined in the Plugin Settings. | |
| 41 | - $settings = new ConvertKit_Settings(); | |
| 42 | - if ( $settings->has_api_key_and_secret() ) { | |
| 43 | - $this->api = new ConvertKit_API( | |
| 44 | - $settings->get_api_key(), | |
| 45 | - $settings->get_api_secret(), | |
| 46 | - $settings->debug_enabled(), | |
| 47 | - $context | |
| 48 | - ); | |
| 49 | - } | |
| 50 | - | |
| 51 | - // Call parent initialization function. | |
| 52 | - parent::init(); | |
| 53 | - | |
| 54 | - } | |
| 55 | - | |
| 56 | 38 | /** |
| 57 | - * Returns all non-inline forms based on the sort order. | |
| 58 | - * | |
| 59 | - * @since 2.2.4 | |
| 60 | - * | |
| 61 | - * @return bool|array | |
| 62 | - */ | |
| 63 | - public function get_non_inline() { | |
| 64 | - | |
| 65 | - // If the ConvertKit WordPress Libraries are < 1.3.6 (e.g. loaded by an outdated | |
| 66 | - // addon), or a WordPress site updates this Plugin before other ConvertKit Plugins, | |
| 67 | - // get_by() won't be available and will cause an E_ERROR, crashing the site. | |
| 68 | - // @see https://wordpress.org/support/topic/error-1795/. | |
| 69 | - if ( ! method_exists( $this, 'get_by' ) ) { | |
| 70 | - return false; | |
| 71 | - } | |
| 72 | - | |
| 73 | - return $this->get_by( 'format', array( 'modal', 'slide in', 'sticky bar' ) ); | |
| 74 | - | |
| 75 | - } | |
| 76 | - | |
| 77 | - | |
| 78 | - /** | |
| 79 | - * Returns whether any non-inline forms exist in the options table. | |
| 80 | - * | |
| 81 | - * @since 2.2.4 | |
| 82 | - * | |
| 83 | - * @return bool | |
| 84 | - */ | |
| 85 | - public function non_inline_exist() { | |
| 86 | - | |
| 87 | - if ( ! $this->get_non_inline() ) { | |
| 88 | - return false; | |
| 89 | - } | |
| 90 | - | |
| 91 | - return true; | |
| 92 | - | |
| 93 | - } | |
| 94 | - | |
| 95 | - /** | |
| 96 | 39 | * Returns the HTML/JS markup for the given Form ID. |
| 97 | 40 | * |
| 98 | 41 | * Legacy Forms will return HTML. |
| 99 | 42 | * Current Forms will return a <script> embed string. |
| @@ -139,40 +82,16 @@ | ||
| 139 | 82 | ); |
| 140 | 83 | } |
| 141 | 84 | |
| 142 | 85 | // Initialize the API. |
| 143 | - $api = new ConvertKit_API( $settings->get_api_key(), $settings->get_api_secret(), $settings->debug_enabled(), 'output_form' ); | |
| 86 | + $api = new ConvertKit_API( $settings->get_api_key(), $settings->get_api_secret(), $settings->debug_enabled() ); | |
| 144 | 87 | |
| 145 | 88 | // Return Legacy Form HTML. |
| 146 | 89 | return $api->get_form_html( $id ); |
| 147 | 90 | } |
| 148 | 91 | |
| 149 | - // If the form's format is not an inline form, add the inline script before the closing </body> tag. | |
| 150 | - // This prevents a modal form's overlay being constrained by the WordPress Theme's styles, | |
| 151 | - // and accidentally embedding the same non-inline form twice, which would result in e.g. the same modal form | |
| 152 | - // displaying twice. | |
| 153 | - if ( $this->resources[ $id ]['format'] !== 'inline' ) { | |
| 154 | - add_filter( | |
| 155 | - 'convertkit_output_scripts_footer', | |
| 156 | - function( $scripts ) use ( $id ) { | |
| 157 | - | |
| 158 | - $scripts[] = array( | |
| 159 | - 'async' => true, | |
| 160 | - 'data-uid' => $this->resources[ $id ]['uid'], | |
| 161 | - 'src' => $this->resources[ $id ]['embed_js'], | |
| 162 | - ); | |
| 163 | - | |
| 164 | - return $scripts; | |
| 165 | - | |
| 166 | - } | |
| 167 | - ); | |
| 168 | - | |
| 169 | - // Don't return a script for output, as it'll be output in the site's footer. | |
| 170 | - return ''; | |
| 171 | - } | |
| 172 | - | |
| 173 | - // If here, return Form <script> embed now, as we want the inline form to display at this specific point of the content. | |
| 174 | - return '<script async data-uid="' . esc_attr( $this->resources[ $id ]['uid'] ) . '" src="' . esc_url( $this->resources[ $id ]['embed_js'] ) . '"></script>'; | |
| 92 | + // If here, return Form <script> embed. | |
| 93 | + return '<script async data-uid="' . $this->resources[ $id ]['uid'] . '" src="' . $this->resources[ $id ]['embed_js'] . '"></script>'; | |
| 175 | 94 | |
| 176 | 95 | } |
| 177 | 96 | |
| 178 | 97 | } |