PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 1.9.7.2
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v1.9.7.2
3.4.3 3.4.2 3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 All 196 releases
← All changes | includes/class-convertkit-resource-forms.php +6 -87 2.2.81.9.7.2 View file →
@@ -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 }