Plugin Directory

Changeset 3437320


Ignore:
Timestamp:
01/12/2026 01:55:08 AM (2 months ago)
Author:
convertkit
Message:

Update to version 3.1.4 from GitHub

Location:
convertkit
Files:
2 added
38 edited
1 copied

Legend:

Unmodified
Added
Removed
  • convertkit/tags/3.1.4/CHANGELOG.md

    r3409026 r3437320  
     1### 3.1.4 2026-01-12
     2* Added: Settings: Member Content: Container CSS Class setting
     3* Added: Member Content: Automatically add `grve-container` CSS class for Impeka Theme
     4* Fix: Form Builder: Set email field type=email
     5* Fix: Blocks: Use Spinner when ProgressBar component unavailable in WordPress versions older than 6.3
     6* Updated: Blocks: Use apiVersion 2
     7
     8### 3.1.3 2025-12-18
     9* Added: Blocks: Field controls: Use 40px default size
     10* Fix: Blocks: Static flag warning
     11* Fix: Blocks: Unique `key` prop warning
     12* Fix: Setup Wizard: Replace `ConvertKit` with `Kit` in browser tab/window title
     13* Updated: Use WordPress Libraries 2.1.3
     14
    115### 3.1.2 2025-12-03
    216* Fix: Settings: Improve logic to automatically delete invalid Access Tokens
  • convertkit/tags/3.1.4/admin/section/class-convertkit-admin-section-restrict-content.php

    r3357832 r3437320  
    334334        );
    335335
     336        add_settings_field(
     337            'container_css_classes',
     338            __( 'Container CSS Classes', 'convertkit' ),
     339            array( $this, 'text_callback' ),
     340            $this->settings_key,
     341            $this->name,
     342            array(
     343                'name'        => 'container_css_classes',
     344                'label_for'   => 'container_css_classes',
     345                'description' => array(
     346                    __( 'Optional CSS classes to apply to the container wrapping the content preview and call to action for non-authenticated subscribers.', 'convertkit' ),
     347                ),
     348            )
     349        );
     350
    336351    }
    337352
  • convertkit/tags/3.1.4/includes/blocks/broadcasts/block.json

    r3325326 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/broadcasts",
    55    "title": "Kit Broadcasts",
  • convertkit/tags/3.1.4/includes/blocks/class-convertkit-block-form-builder-field-email.php

    r3403088 r3437320  
    3232     */
    3333    public $field_id = 'email';
     34
     35    /**
     36     * The type of field to render.
     37     *
     38     * @since   3.1.4
     39     *
     40     * @var     string
     41     */
     42    public $field_type = 'email';
    3443
    3544    /**
  • convertkit/tags/3.1.4/includes/blocks/form-builder-field-custom/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder-field-custom",
    55    "title": "Kit Form Builder: Custom Field",
  • convertkit/tags/3.1.4/includes/blocks/form-builder-field-email/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder-field-email",
    55    "title": "Kit Form Builder: Email Field",
  • convertkit/tags/3.1.4/includes/blocks/form-builder-field-name/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder-field-name",
    55    "title": "Kit Form Builder: Name Field",
  • convertkit/tags/3.1.4/includes/blocks/form-builder/block.json

    r3376520 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder",
    55    "title": "Kit Form Builder",
  • convertkit/tags/3.1.4/includes/blocks/form/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form",
    55    "title": "Kit Form",
  • convertkit/tags/3.1.4/includes/blocks/formtrigger/block.json

    r3325326 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/formtrigger",
    55    "title": "Kit Form Trigger",
  • convertkit/tags/3.1.4/includes/blocks/product/block.json

    r3325326 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/product",
    55    "title": "Kit Product",
  • convertkit/tags/3.1.4/includes/class-convertkit-output-restrict-content.php

    r3399438 r3437320  
    12261226         */
    12271227        $call_to_action = apply_filters( 'convertkit_output_restrict_content_call_to_action', $call_to_action, $this->post_id );
     1228
     1229        // Fetch container CSS classes.
     1230        $container_css_classes = explode( ' ', $this->restrict_content_settings->get_by_key( 'container_css_classes' ) );
     1231
     1232        /**
     1233         * Define the container CSS classes to wrap the content preview and call to action within.
     1234         *
     1235         * @since   3.1.4
     1236         *
     1237         * @param   array  $container_css_classes    Container CSS classes.
     1238         * @param   int    $post_id                  Post ID.
     1239         */
     1240        $container_css_classes = apply_filters( 'convertkit_output_restrict_content_container_css_classes', $container_css_classes, $this->post_id );
     1241
     1242        // Remove empty CSS classes.
     1243        $container_css_classes = array_filter( $container_css_classes );
     1244
     1245        // If container CSS classes are set, return the content preview and call to action wrapped in the container.
     1246        if ( count( $container_css_classes ) ) {
     1247            return '<div class="' . trim( implode( ' ', map_deep( $container_css_classes, 'sanitize_html_class' ) ) ) . '">' . $content_preview . $call_to_action . '</div>';
     1248        }
    12281249
    12291250        // Return the content preview and its call to action.
  • convertkit/tags/3.1.4/includes/class-convertkit-settings-restrict-content.php

    r3357832 r3437320  
    152152            'email_check_heading'    => __( 'We just emailed you a log in code', 'convertkit' ),
    153153            'email_check_text'       => __( 'Enter the code below to finish logging in', 'convertkit' ),
     154            'container_css_classes'  => '',
    154155        );
    155156
  • convertkit/tags/3.1.4/includes/functions.php

    r3409026 r3437320  
    643643
    644644/**
     645 * Checks if the given Theme is active.
     646 *
     647 * @since  3.1.4
     648 *
     649 * @param   string $theme_name   Theme name.
     650 * @return  bool
     651 */
     652function convertkit_is_theme_active( $theme_name ) {
     653
     654    // Assume Theme isn't active if we can't detect it.
     655    if ( ! function_exists( 'wp_get_theme' ) ) {
     656        return false;
     657    }
     658
     659    // Check the Parent Theme if we're on a Child Theme.
     660    if ( wp_get_theme()->parent() ) {
     661        $theme = wp_get_theme()->parent();
     662    } else {
     663        $theme = wp_get_theme();
     664    }
     665
     666    return strtolower( $theme->get( 'Name' ) ) === strtolower( $theme_name );
     667
     668}
     669
     670/**
    645671 * Returns permitted HTML output when using wp_kses( ..., convertkit_kses_allowed_html()).
    646672 *
  • convertkit/tags/3.1.4/languages/convertkit.pot

    r3423037 r3437320  
    1 # Copyright (C) 2025 Kit
     1# Copyright (C) 2026 Kit
    22# This file is distributed under the GPLv3 or later.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Kit (formerly ConvertKit) 3.1.3\n"
     5"Project-Id-Version: Kit (formerly ConvertKit) 3.1.4\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/convertkit\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-12-18T10:45:11+00:00\n"
     12"POT-Creation-Date: 2026-01-10T10:03:26+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
     
    4040#: includes/blocks/class-convertkit-block-content.php:85
    4141#: includes/blocks/class-convertkit-block-form-builder-field-custom.php:72
    42 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:99
     42#: includes/blocks/class-convertkit-block-form-builder-field-email.php:108
    4343#: includes/blocks/class-convertkit-block-form-builder-field-name.php:90
    4444#: includes/blocks/class-convertkit-block-form-builder.php:353
     
    332332
    333333#: admin/section/class-convertkit-admin-section-form-entries.php:158
    334 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:100
     334#: includes/blocks/class-convertkit-block-form-builder-field-email.php:109
    335335msgid "Email"
    336336msgstr ""
     
    792792msgstr ""
    793793
     794#: admin/section/class-convertkit-admin-section-restrict-content.php:338
     795msgid "Container CSS Classes"
     796msgstr ""
     797
    794798#: admin/section/class-convertkit-admin-section-restrict-content.php:346
     799msgid "Optional CSS classes to apply to the container wrapping the content preview and call to action for non-authenticated subscribers."
     800msgstr ""
     801
     802#: admin/section/class-convertkit-admin-section-restrict-content.php:361
    795803msgid "Defines the text and button labels to display when a Page, Post or Custom Post has its Member Content setting defined."
    796804msgstr ""
    797805
    798 #: admin/section/class-convertkit-admin-section-restrict-content.php:359
     806#: admin/section/class-convertkit-admin-section-restrict-content.php:374
    799807msgid "Defines settings when a Page, Post or Custom Post type has its member content setting set to a Kit form."
    800808msgstr ""
    801809
    802 #: admin/section/class-convertkit-admin-section-restrict-content.php:372
     810#: admin/section/class-convertkit-admin-section-restrict-content.php:387
    803811msgid "Defines settings when a Page, Post or Custom Post type has its member content setting set to a Kit product."
    804812msgstr ""
    805813
    806 #: admin/section/class-convertkit-admin-section-restrict-content.php:386
     814#: admin/section/class-convertkit-admin-section-restrict-content.php:401
    807815msgid "Defines settings when a Page, Post or Custom Post type has its member content setting set to a Kit tag."
    808816msgstr ""
    809817
    810818#. translators: 1: General settings screen link, 2: Closing link tag
    811 #: admin/section/class-convertkit-admin-section-restrict-content.php:398
     819#: admin/section/class-convertkit-admin-section-restrict-content.php:413
    812820#, php-format
    813821msgid "Looking for reCAPTCHA settings? They can now be found in the %1$sGeneral settings screen%2$s."
     
    10121020#: includes/blocks/class-convertkit-block-content.php:84
    10131021#: includes/blocks/class-convertkit-block-form-builder-field-custom.php:71
    1014 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:98
     1022#: includes/blocks/class-convertkit-block-form-builder-field-email.php:107
    10151023#: includes/blocks/class-convertkit-block-form-builder-field-name.php:89
    10161024#: includes/blocks/class-convertkit-block-form-builder.php:352
     
    12041212
    12051213#: includes/blocks/class-convertkit-block-form-builder-field-custom.php:74
    1206 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:101
     1214#: includes/blocks/class-convertkit-block-form-builder-field-email.php:110
    12071215#: includes/blocks/class-convertkit-block-form-builder-field-name.php:92
    12081216msgid "Field"
     
    12421250msgstr ""
    12431251
    1244 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:68
     1252#: includes/blocks/class-convertkit-block-form-builder-field-email.php:77
    12451253msgid "Kit Form Builder: Email Field"
    12461254msgstr ""
    12471255
    1248 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:94
     1256#: includes/blocks/class-convertkit-block-form-builder-field-email.php:103
    12491257msgid "Adds an email field to the Kit Form Builder."
    12501258msgstr ""
  • convertkit/tags/3.1.4/readme.txt

    r3423037 r3437320  
    66Tested up to: 6.9
    77Requires PHP: 7.1
    8 Stable tag: 3.1.3
     8Stable tag: 3.1.4
    99License: GPLv3 or later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    5353
    5454With the Form Builder block, you can:
     55
    5556- Add fields such as first name, email address, and custom fields
    5657- Apply tags and sequences to subscribers for powerful segmentation
     
    5960
    6061This makes the Form Builder block ideal for:
     62
    6163- Subscription forms to grow your email subscribers list
    6264- Contact forms that connect directly to Kit
     
    141143== Frequently asked questions ==
    142144
    143 = Does this plugin require a paid service? =
    144 
    145 No. You must first have an account on [kit.com](https://kit.com?utm_source=wordpress&utm_term=en_US&utm_content=readme), but you do not have to use a paid plan!
    146 
    147 = How do I refresh my available Forms, Landing Pages and Tags? =
    148 
    149 Either:
    150 
    151 - Navigate to the Plugin's Settings at `Settings > Kit`
    152 - Click the refresh button displayed next to the Form, Landing Page or Tag fields when creating/editing Pages or Posts to ensure your latest email newsletter forms are available
    153 
    154 = How do I automatically import Kit Broadcasts to WordPress Posts? =
    155 
    156 To import your past (and future) email newsletters from Kit to WordPress:
    157 
    158 - Navigate to the Plugin's Settings at `Settings > Kit`
    159 - Click the `Broadcasts` tab
    160 - Tick the `Enable Automatic Import` option
    161 - Configure other settings as necessary, and click `Save Changes` when done to streamline your email newsletter publishing
    162 
    163 = Where can I find the Plugin's Documentation? =
    164 
    165 Full Plugin documentation can be found [here](https://help.kit.com/en/articles/2502591-how-to-set-up-the-kit-plugin-on-your-wordpress-website?utm_source=wordpress&utm_content=readme).
     145= Is Kit free for email newsletter creators? =
     146
     147Yes! Kit is 100% free for your first 10,000 email subscribers - [sign up today](https://kit.com?utm_source=wordpress&utm_term=en_US&utm_content=readme). This makes it perfect for new newsletter creators, bloggers starting email marketing, and small membership sites. You can grow your email subscribers list, send newsletters, create landing pages, and even sell membership products without paying anything until you exceed 10,000 newsletter subscribers.
     148
     149= How do I create newsletter signup forms? =
     150
     151Create newsletter subscription forms directly in your Kit account using the visual form builder. Design inline forms, modal popups, slide-in forms, or sticky bars optimized for email subscriber conversion. Once created, the newsletter forms automatically sync with the WordPress plugin and become available for embedding on your site to grow your email subscribers list.
     152
     153= Can I create landing pages for email subscriber growth? =
     154
     155Yes! Design professional landing pages in Kit's landing page editor, then display them on any WordPress page. Landing pages are optimized specifically for email newsletter signups and subscriber conversion. Choose from pre-built landing page templates or customize your own. The plugin seamlessly integrates Kit landing pages into WordPress for consistent subscriber experience.
     156
     157= How does the membership site feature work? =
     158
     159The membership feature lets you restrict WordPress content to paying email subscribers or newsletter members. Create Products in Kit, then assign them to specific WordPress pages or posts. When email subscribers visit protected content, they're prompted to enter their email. If they've purchased the required Kit Product, they receive membership access via a magic link. No complex membership plugins needed.
     160
     161= Can I segment my email subscribers for targeted newsletters? =
     162
     163Absolutely! Kit provides powerful subscriber segmentation using tags. Automatically tag email subscribers based on which newsletter form they used, which links they clicked, or which Kit Products they purchased. Send targeted email newsletters to specific subscriber segments for more relevant email marketing campaigns and higher newsletter engagement rates.
     164
     165= Do I need coding knowledge to use this plugin? =
     166
     167No coding required! Create newsletter subscription forms, landing pages, and email campaigns using Kit's visual editors. Embed newsletter forms using native WordPress blocks or simple shortcodes. Build membership sites by selecting Products from dropdowns. Even custom newsletter forms in WordPress can be built using the drag-and-drop block editor without touching code.
     168
     169= How do I refresh available forms, landing pages, and tags? =
     170
     171Click the refresh button next to Form, Landing Page, or Tag dropdowns when editing Pages or Posts. This syncs your latest newsletter forms and products from Kit to WordPress. You can also refresh all resources at once by navigating to Settings > Kit and clicking refresh. This ensures your newest email subscriber capture forms are always available.
     172
     173= Can I automatically import email newsletters to WordPress? =
     174
     175Yes! Navigate to Settings > Kit > Broadcasts and enable automatic import. Your published email newsletters from Kit will automatically import as WordPress posts. Configure the import schedule, post author, category, and featured image settings. This keeps newsletter subscribers engaged by making your email content discoverable on your site.
     176
     177= What integrations work with email subscriber capture? =
     178
     179The plugin integrates with Contact Form 7, Gravity Forms, WooCommerce, WishList Member, Elementor, and more. Automatically add form submissions as email subscribers, tag WooCommerce customers for email marketing, sync membership levels with newsletter subscriber tags, and use native Elementor widgets for newsletter forms. Additional integrations available through separate plugins.
     180
     181= How do I display newsletter forms in specific locations? =
     182
     183You have multiple options for newsletter form placement. Set site-wide defaults that display newsletter signup forms automatically below posts and pages. Override defaults on individual posts to show specific email subscriber forms. Use blocks or shortcodes to embed newsletter forms within content at optimal conversion points. Add widget newsletter forms to sidebars and footers.
     184
     185= Can I create free membership content for newsletter subscribers? =
     186
     187Yes! You can gate content requiring only email subscription without requiring payment. This is perfect for exclusive newsletter subscriber content, free member communities, or content upgrades. Use Tag-based restrictions where entering an email and receiving membership access via magic link is all that's required. Great for building email subscriber loyalty.
     188
     189= Does this work with my WordPress theme? =
     190
     191The plugin works with any WordPress theme. Newsletter signup forms and landing pages are designed to adapt to your theme's styling. The Form Builder block uses your theme's CSS ensuring newsletter forms match your site perfectly. Inline forms blend seamlessly into content while modal, slide-in, and sticky bar newsletter forms maintain Kit's polished design.
     192
     193= How do I track email subscriber growth and conversions? =
     194
     195Track subscriber growth, newsletter form conversion rates, email campaign performance, and landing page analytics directly in your Kit dashboard. Monitor which newsletter forms convert best, which landing pages drive the most email subscribers, and which email newsletters get the highest engagement from your subscriber list. All metrics update in real-time.
     196
     197= What's the difference between inline and non-inline newsletter forms? =
     198
     199Inline newsletter forms embed directly within page content and scroll with the page. They're great for email subscriber capture within blog posts. Non-inline forms include modals (popups), slide-ins (appear from corners), and sticky bars (fixed to top/bottom). Non-inline newsletter forms demand attention and often achieve higher email subscriber conversion rates.
     200
     201= Can I customize newsletter form colors and styling? =
     202
     203Yes! Customize newsletter subscription forms in Kit's form editor matching your brand colors, fonts, and style. Adjust form button colors, input field styling, and background colors. For inline forms, the Form Builder block in WordPress uses your theme's styling automatically, ensuring newsletter forms blend seamlessly with your site design.
     204
     205= What happens when someone subscribes to my newsletter? =
     206
     207When visitors submit newsletter signup forms, they're added as email subscribers to your Kit account. You can configure forms to immediately add subscribers to your newsletter list, tag them for segmentation, or enroll them in automated email sequences. Subscribers receive welcome emails if configured, and you can start sending email newsletters immediately.
     208
     209= How do membership magic links work for subscribers? =
     210
     211When an email subscriber tries accessing protected membership content, they enter their email address. If they've purchased the required Kit Product or have the necessary tag, they receive an email containing a one-time code and magic link. Clicking the magic link or entering the code grants immediate membership access without requiring passwords.
     212
     213= Can I sell digital products through membership features? =
     214
     215Yes! Create Products in Kit and sell them directly to your email subscribers. Products can be one-time purchases, subscriptions, or tip jars. Assign Products to WordPress pages and posts as membership content. When newsletter subscribers purchase Products, they automatically get membership access to all associated content in WordPress.
     216
     217= Do newsletter forms slow down my site? =
     218
     219No. Newsletter subscription forms load asynchronously and are optimized for performance. The plugin only loads necessary assets on pages actually displaying newsletter forms. Landing pages are hosted on Kit's servers ensuring fast load times. The lightweight codebase ensures email subscriber capture doesn't impact your WordPress site speed.
     220
     221= How many newsletter forms can I create? =
     222
     223There's no limit to the number of newsletter subscription forms you can create in Kit. Design different forms for different audiences, pages, or lead magnets. Create targeted newsletter signup forms for each email subscriber segment. Test variations of forms to optimize conversion. All forms sync automatically with the WordPress plugin.
     224
     225= Can I schedule email newsletters to subscribers? =
     226
     227Yes! Kit's email marketing platform lets you schedule newsletter campaigns to send at optimal times for your email subscribers. Write newsletters in advance and schedule them for future delivery. Set up recurring newsletters that send automatically on a schedule. Ensure global email subscribers receive newsletters at appropriate times for their timezone.
     228
     229= What's the difference between tags and segments for email subscribers? =
     230
     231Tags are labels you apply to newsletter subscribers based on interests, behavior, or characteristics. Segments are filtered views of your subscriber list based on one or more tags. Use tags to organize email subscribers, then create segments to send targeted newsletters. For example, tag subscribers as "interested in courses" then create a segment for course email marketing.
     232
     233= Can I migrate existing email subscribers to Kit? =
     234
     235Yes! Kit provides easy import tools for migrating email subscribers from other platforms. Import CSV files containing subscriber data. The plugin maintains subscriber tags and preferences during migration. You can continue sending newsletters immediately after importing. Kit's migration support team helps with large subscriber list transfers.
     236
     237= How do I remove email subscribers from newsletters? =
     238
     239Email subscribers can unsubscribe from newsletters using links automatically included in every email campaign per email marketing regulations. You can also manually remove subscribers from Settings > Kit in WordPress or directly in your Kit account. Unsubscribed email addresses are automatically excluded from future newsletter sends.
     240
     241= Does this work with WooCommerce for email marketing? =
     242
     243Yes! The separate Kit for WooCommerce plugin adds powerful integrations. Automatically subscribe WooCommerce customers to email newsletters at checkout. Tag purchasers for targeted email marketing campaigns. Track purchase data for each newsletter subscriber. Send abandoned cart emails to recover lost sales. Build email subscriber value over time.
     244
     245= Can I create multiple membership tiers for subscribers? =
     246
     247Yes! Create different Kit Products for each membership tier. Assign Products to different WordPress content. Newsletter subscribers purchase the membership tier they want and automatically get access to corresponding content. Create Bronze, Silver, Gold membership tiers each with different Products and content access for paying email subscribers.
     248
     249= How do landing pages improve email subscriber conversions? =
     250
     251Landing pages are specifically designed for single conversion goals like email newsletter signups. They remove navigation and distractions, focusing visitors entirely on becoming email subscribers. Use compelling headlines, clear value propositions, social proof, and strong calls-to-action. Kit's landing page templates are proven to convert visitors into newsletter subscribers at high rates.
     252
     253= What email marketing automations can I create for subscribers? =
     254
     255Create welcome sequences greeting new email subscribers with your best content. Build product launch funnels promoting offers to newsletter segments. Set up abandoned cart sequences for WooCommerce email marketing. Create re-engagement campaigns for inactive newsletter subscribers. Configure behavioral automations tagging email subscribers based on email clicks and website activity.
     256
     257= Can I embed past email newsletters on my WordPress site? =
     258
     259Yes! Use the Broadcasts block or `[convertkit_broadcasts]` shortcode to display past email newsletters on any page or post. This keeps newsletter content discoverable for website visitors, drives email subscriber signups from engaged readers, and extends the life of newsletter content beyond inboxes.
     260
     261= How do I optimize newsletter forms for mobile email subscribers? =
     262
     263All newsletter subscription forms and landing pages are automatically mobile-responsive. Forms resize and reorganize for small screens ensuring easy email subscriber signup on phones and tablets. Test newsletter forms on mobile devices to verify the email subscriber experience. The Form Builder block uses responsive WordPress patterns for perfect mobile newsletter conversion.
     264
     265= What's the best strategy for growing email subscribers? =
     266
     267Use multiple newsletter form types strategically. Place inline newsletter forms within valuable blog posts where visitors are most engaged. Add exit-intent modal newsletter forms to capture abandoning visitors as email subscribers. Include sticky bar newsletter forms for persistent visibility. Create dedicated landing pages for lead magnets. Test and optimize all newsletter forms for maximum email subscriber growth.
     268
     269= Can I use newsletter forms with page builders? =
     270
     271Yes! The plugin includes integrations with popular page builders. Use native Elementor widgets for newsletter forms and email subscriber content. Divi modules available for newsletter integration. All page builders support the shortcode method for email subscriber forms. The WordPress block editor provides native blocks for newsletter capture.
     272
     273= How do I create a newsletter lead magnet funnel? =
     274
     275Create a compelling lead magnet (ebook, checklist, course) that solves a specific problem for your target email subscribers. Design a dedicated landing page promoting the lead magnet optimized for newsletter signups. Create a newsletter subscription form offering the lead magnet in exchange for email addresses. Set up an automated email sequence delivering the lead magnet and nurturing new newsletter subscribers.
     276
     277= What is the Form Builder block for email newsletter forms? =
     278
     279The Form Builder block is a native WordPress block that lets you create custom email newsletter subscription forms directly in the WordPress editor without any coding. Unlike embedding pre-designed forms from Kit, the Form Builder block gives you complete control to design newsletter signup forms that perfectly match your WordPress theme's styling and branding for optimal email subscriber conversion.
     280
     281= How does the Form Builder block differ from regular newsletter forms? =
     282
     283Regular newsletter forms are designed in Kit and embedded in WordPress. The Form Builder block lets you build email subscription forms entirely within WordPress using the block editor. Form Builder newsletter forms automatically inherit your theme's typography, colors, and spacing. You can customize every aspect including form fields, button styling, colors, spacing, and layout while maintaining your site's design consistency for email subscribers.
     284
     285= Can I customize Form Builder newsletter forms to match my brand? =
     286
     287Yes! The Form Builder block provides extensive customization options for email newsletter forms. Adjust typography including font families, sizes, and weights. Customize colors for form fields, buttons, labels, and backgrounds. Control spacing with margin and padding settings. Add custom CSS classes for advanced styling. Form Builder newsletter forms adapt to your WordPress theme while allowing granular control over email subscriber form appearance.
     288
     289= What fields can I add to Form Builder newsletter subscription forms? =
     290
     291The Form Builder block supports multiple field types for email newsletter signups. Add email address fields (required), first name fields, last name fields, and custom fields you've created in Kit. All fields can be marked as required or optional. This flexibility lets you collect exactly the email subscriber information you need while keeping newsletter forms simple and conversion-focused.
     292
     293= Does the Form Builder block work with Kit tags and sequences? =
     294
     295Absolutely! When building newsletter subscription forms with the Form Builder block, you can assign Kit tags to segment email subscribers automatically. Subscribe new email addresses to specific Kit sequences to trigger automated email marketing campaigns. Configure reCAPTCHA protection if enabled in your Kit account. Form Builder newsletter forms have full integration with Kit's email subscriber management features.
     296
     297= How do I add a Form Builder newsletter form to my WordPress site? =
     298
     299In the WordPress block editor, click the plus icon to add a new block and search for "Kit Form Builder." Add the block to your page or post. Configure your email newsletter form by adding fields like email and first name. Customize the styling, colors, and spacing to match your theme. Optionally assign tags or sequences for email subscriber segmentation. Publish to start capturing email subscribers with your custom newsletter form.
     300
     301= Can Form Builder newsletter forms collect custom subscriber data? =
     302
     303Yes! The Form Builder block supports custom fields you've created in your Kit account. Add custom fields to collect specific information from email newsletter subscribers like job titles, company names, interests, or any data relevant to your email marketing strategy. Custom field data syncs to Kit automatically, enabling advanced email subscriber segmentation and personalized newsletter campaigns.
     304
     305= Are Form Builder newsletter forms mobile responsive? =
     306
     307All Form Builder newsletter subscription forms are automatically mobile responsive. Forms adapt to screen sizes ensuring email subscribers can easily sign up on phones and tablets. The Form Builder block uses responsive WordPress patterns and follows your theme's mobile styling. Test newsletter forms on multiple devices to verify the optimal email subscriber experience across all screen sizes.
     308
     309= Can I use the Form Builder block for contact forms and email subscribers? =
     310
     311Yes! The Form Builder block works as both a newsletter subscription form and a contact form. Collect email addresses and additional information from visitors. When someone submits a Form Builder form, they're automatically added as email subscribers to your Kit account and can be tagged or added to sequences. This makes Form Builder perfect for dual-purpose forms capturing both contacts and newsletter subscribers.
     312
     313= Does the Form Builder block support spam protection for newsletter signups? =
     314
     315Yes! The Form Builder block integrates with Google reCAPTCHA v3 if configured in your Kit account at Settings > Kit > General. This protects your email newsletter forms from bot submissions and fake email subscribers. reCAPTCHA runs invisibly in the background, ensuring legitimate newsletter subscribers have a smooth signup experience while blocking spam from polluting your email list.
     316
     317= How does the Form Builder block handle newsletter form styling? =
     318
     319The Form Builder block uses your WordPress theme's CSS by default, ensuring newsletter subscription forms match your site design automatically. You can then customize individual elements including button colors, input field borders, label typography, and spacing. The block provides intuitive controls in the WordPress editor sidebar letting you style email newsletter forms visually without touching code while maintaining theme consistency.
     320
     321= Can I view Form Builder newsletter form submissions in WordPress? =
     322
     323Yes! Navigate to Settings > Kit > Form Entries to view all submissions from Form Builder newsletter forms. Search entries by email address, filter by submission date or API result, and export subscriber data as CSV files. This gives you a WordPress-based view of email newsletter signups alongside Kit's subscriber management, perfect for tracking email subscriber acquisition and form performance.
     324
     325= Where can I find complete plugin documentation? =
     326
     327Comprehensive documentation is available at: [Kit WordPress Plugin Setup Guide](https://help.kit.com/en/articles/2502591-how-to-set-up-the-kit-plugin-on-your-wordpress-website?utm_source=wordpress&utm_content=readme)
     328
     329The documentation covers newsletter form setup, landing page configuration, membership site creation, email marketing automation, subscriber segmentation, and all plugin features for growing your email newsletter.
    166330
    167331== Screenshots ==
    168332
    169 1. Create and customize stunning email subscription forms and landing pages in Kit
    170 2. Manage the WordPress plugin from a simple settings page in the WordPress admin
    171 3. Append Kit forms to Pages, Posts or other Custom Post Types to grow your email subscribers
    172 4. Configure a specific Kit form to display on a specific Page or Post
    173 5. Display your Kit forms anywhere on your WordPress web site using the form block / shortcode
    174 6. Configure a Kit landing page to be used in place of a WordPress Page, to capture email subscribers
    175 7. Automatically import your past email newsletters to WordPress Posts
    176 8. Create your paid membership site by assigning paid Kit Products to your existing WordPress content
    177 9. Set up form and landing page automations in Kit
    178 10. Track subscriber growth and email newsletter performance
     3331. Create stunning email newsletter subscription forms and landing pages in Kit's visual editor optimized for email subscriber conversion
     3342. Simple WordPress plugin settings page to manage email newsletter forms, landing pages, and membership features for subscribers
     3353. Automatically append newsletter signup forms to Posts, Pages, or Custom Post Types to capture email subscribers site-wide
     3364. Configure specific email newsletter forms on individual Pages and Posts for targeted subscriber growth and email marketing
     3375. Display newsletter subscription forms anywhere using blocks or shortcodes to maximize email subscriber capture opportunities
     3386. Replace WordPress pages with Kit landing pages optimized specifically for email newsletter subscriber acquisition
     3397. Automatically import published email newsletters from Kit to WordPress Posts keeping subscribers engaged with searchable newsletter content
     3408. Build paid membership sites by assigning Kit Products to WordPress content accessible only to paying email subscribers
     3419. Set up form automations and email marketing sequences in Kit to nurture newsletter subscribers and drive conversions
     34210. Track email subscriber growth, newsletter performance, landing page conversions, and membership site analytics in real-time
    179343
    180344== Changelog ==
     345
     346### 3.1.4 2026-01-12
     347* Added: Settings: Member Content: Container CSS Class setting
     348* Added: Member Content: Automatically add `grve-container` CSS class for Impeka Theme
     349* Fix: Form Builder: Set email field type=email
     350* Fix: Blocks: Use Spinner when ProgressBar component unavailable in WordPress versions older than 6.3
     351* Updated: Blocks: Use apiVersion 2
    181352
    182353### 3.1.3 2025-12-18
  • convertkit/tags/3.1.4/resources/backend/css/gutenberg.css

    r3423037 r3437320  
    3737    right: 20px;
    3838    line-height: 22px;
     39    width: auto;
    3940}
    4041
    41 .wp-block .convertkit-no-content .convertkit-progress-bar {
     42.wp-block .convertkit-no-content .convertkit-progress-bar,
     43.wp-block .convertkit-no-content .spinner {
     44    float: none;
    4245    margin: 0 auto;
    4346}
  • convertkit/tags/3.1.4/resources/backend/js/gutenberg.js

    r3423037 r3437320  
    4242        const el = element.createElement;
    4343        const { registerBlockType } = blocks;
    44         const { InspectorControls, InnerBlocks } = editor;
    45         const { Fragment, useState } = element;
     44        const { InspectorControls, InnerBlocks, useBlockProps } = editor;
     45        const { useState } = element;
    4646        const {
    4747            Button,
     
    365365         * @return {Object}       Block settings sidebar elements.
    366366         */
    367         const editBlock = function (props) {
     367        const EditBlock = function (props) {
     368            const blockProps = useBlockProps();
     369
     370            // Refresh button disabled state on DisplayNoticeWithLink.
     371            // This must be here to avoid React error on hook order change when the user e.g.
     372            // connects their Kit account from within the block itself.
     373            const [buttonDisabled, setButtonDisabled] = useState(false);
     374
    368375            // If requesting an example of how this block looks (which is requested
    369376            // when the user adds a new block and hovers over this block's icon),
    370377            // show the preview image.
    371378            if (props.attributes.is_gutenberg_example === true) {
    372                 return (
    373                     Fragment,
    374                     {},
     379                return el(
     380                    'div',
     381                    blockProps,
    375382                    el('img', {
    376383                        src: block.gutenberg_example_image,
     
    382389            // for this block, show a message in the block to tell the user what to do.
    383390            if (!block.has_access_token || !block.has_resources) {
    384                 return DisplayNoticeWithLink(props);
     391                return DisplayNoticeWithLink(
     392                    props,
     393                    blockProps,
     394                    buttonDisabled,
     395                    setButtonDisabled
     396                );
    385397            }
    386398
     
    402414                    props
    403415                );
    404                 return editBlockWithPanelsAndPreview(panels, preview);
     416                return editBlockWithPanelsAndPreview(
     417                    panels,
     418                    preview,
     419                    blockProps
     420                );
    405421            }
    406422
     
    417433                    block.gutenberg_help_description
    418434                );
    419                 return editBlockWithPanelsAndPreview(panels, preview);
     435                return editBlockWithPanelsAndPreview(
     436                    panels,
     437                    preview,
     438                    blockProps
     439                );
    420440            }
    421441
     
    444464                    })
    445465                );
    446                 return editBlockWithPanelsAndPreview(panels, preview);
     466                return editBlockWithPanelsAndPreview(
     467                    panels,
     468                    preview,
     469                    blockProps
     470                );
    447471            }
    448472
     
    456480                className: 'convertkit-ssr-' + block.name,
    457481            });
    458             return editBlockWithPanelsAndPreview(panels, preview);
     482            return editBlockWithPanelsAndPreview(panels, preview, blockProps);
    459483        };
    460484
     
    465489         * @since   3.0.0
    466490         *
    467          * @param {Object} panels  Block panels.
    468          * @param {Object} preview Block preview.
    469          * @return {Object}         Block settings sidebar elements.
    470          */
    471         const editBlockWithPanelsAndPreview = function (panels, preview) {
    472             return el(
    473                 // Sidebar Panel with Fields.
    474                 Fragment,
    475                 {},
     491         * @param {Object} panels     Block panels.
     492         * @param {Object} preview    Block preview.
     493         * @param {Object} blockProps Block properties.
     494         * @return {Object}           Block settings sidebar elements.
     495         */
     496        const editBlockWithPanelsAndPreview = function (
     497            panels,
     498            preview,
     499            blockProps
     500        ) {
     501            return el('div', blockProps, [
    476502                el(InspectorControls, {}, panels),
    477                 // Block Preview.
    478                 preview
    479             );
     503                preview,
     504            ]);
    480505        };
    481506
     
    489514        const saveBlock = function () {
    490515            if (typeof block.gutenberg_template !== 'undefined') {
    491                 return el('div', {}, el(InnerBlocks.Content));
     516                // Use useBlockProps.save() to preserve styling classes and attributes
     517                // from block supports (colors, typography, spacing, etc.)
     518                const blockProps = useBlockProps.save();
     519                return el('div', blockProps, el(InnerBlocks.Content));
    492520            }
    493521
     
    505533         * @since   2.2.5
    506534         *
    507          * @param {Object} props Block properties.
    508          * @return {Object}       Notice.
    509          */
    510         const DisplayNoticeWithLink = function (props) {
    511             // useState to toggle the refresh button's disabled state.
    512             const [buttonDisabled, setButtonDisabled] = useState(false);
    513 
     535         * @param {Object}   props             Block properties.
     536         * @param {Object}   blockProps        Block properties.
     537         * @param {boolean}  buttonDisabled    Whether the refresh button is disabled (true) or enabled (false)
     538         * @param {Function} setButtonDisabled Function to enable or disable the refresh button.
     539         * @return {Object}                     Notice.
     540         */
     541        const DisplayNoticeWithLink = function (
     542            props,
     543            blockProps,
     544            buttonDisabled,
     545            setButtonDisabled
     546        ) {
    514547            // Holds the array of elements to display in the notice component.
    515548            let elements;
     
    542575            return el(
    543576                'div',
    544                 {
    545                     // convertkit-no-content class allows resources/backend/css/gutenberg.css
    546                     // to apply styling/branding to the block.
    547                     className:
    548                         'convertkit-' + block.name + ' convertkit-no-content',
    549                 },
    550                 elements
     577                blockProps,
     578                el(
     579                    'div',
     580                    {
     581                        // convertkit-no-content class allows resources/backend/css/gutenberg.css
     582                        // to apply styling/branding to the block.
     583                        className:
     584                            'convertkit-' +
     585                            block.name +
     586                            ' convertkit-no-content',
     587                    },
     588                    elements
     589                )
    551590            );
    552591        };
     
    561600         */
    562601        const loadingIndicator = function (props) {
     602            // If the ProgressBar component is not available i.e. WordPress < 6.3, return a spinner.
     603            if (typeof ProgressBar === 'undefined') {
     604                return el('span', {
     605                    key: props.clientId + '-spinner',
     606                    className: 'spinner is-active convertkit-block-refreshing',
     607                });
     608            }
     609
    563610            return el(ProgressBar, {
    564611                key: props.clientId + '-progress-bar',
    565                 className: 'convertkit-progress-bar',
     612                className:
     613                    'convertkit-progress-bar convertkit-block-refreshing',
    566614            });
    567615        };
     
    852900
    853901            // Editor.
    854             edit: editBlock,
     902            edit: EditBlock,
    855903
    856904            // Output.
  • convertkit/tags/3.1.4/wp-convertkit.php

    r3423037 r3437320  
    1010 * Plugin URI: https://kit.com/
    1111 * Description: Display Kit (formerly ConvertKit) email subscription forms, landing pages, products, broadcasts and more.
    12  * Version: 3.1.3
     12 * Version: 3.1.4
    1313 * Author: Kit
    1414 * Author URI: https://kit.com/
     
    2828define( 'CONVERTKIT_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
    2929define( 'CONVERTKIT_PLUGIN_PATH', __DIR__ );
    30 define( 'CONVERTKIT_PLUGIN_VERSION', '3.1.3' );
     30define( 'CONVERTKIT_PLUGIN_VERSION', '3.1.4' );
    3131define( 'CONVERTKIT_OAUTH_CLIENT_ID', 'HXZlOCj-K5r0ufuWCtyoyo3f688VmMAYSsKg1eGvw0Y' );
    3232define( 'CONVERTKIT_OAUTH_CLIENT_REDIRECT_URI', 'https://app.kit.com/wordpress/redirect' );
     
    146146require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/forminator/class-convertkit-forminator-settings.php';
    147147
     148// Impeka Integration.
     149require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/class-convertkit-impeka.php';
     150
    148151// Uncode Integration.
    149152require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/class-convertkit-uncode.php';
  • convertkit/trunk/CHANGELOG.md

    r3409026 r3437320  
     1### 3.1.4 2026-01-12
     2* Added: Settings: Member Content: Container CSS Class setting
     3* Added: Member Content: Automatically add `grve-container` CSS class for Impeka Theme
     4* Fix: Form Builder: Set email field type=email
     5* Fix: Blocks: Use Spinner when ProgressBar component unavailable in WordPress versions older than 6.3
     6* Updated: Blocks: Use apiVersion 2
     7
     8### 3.1.3 2025-12-18
     9* Added: Blocks: Field controls: Use 40px default size
     10* Fix: Blocks: Static flag warning
     11* Fix: Blocks: Unique `key` prop warning
     12* Fix: Setup Wizard: Replace `ConvertKit` with `Kit` in browser tab/window title
     13* Updated: Use WordPress Libraries 2.1.3
     14
    115### 3.1.2 2025-12-03
    216* Fix: Settings: Improve logic to automatically delete invalid Access Tokens
  • convertkit/trunk/admin/section/class-convertkit-admin-section-restrict-content.php

    r3357832 r3437320  
    334334        );
    335335
     336        add_settings_field(
     337            'container_css_classes',
     338            __( 'Container CSS Classes', 'convertkit' ),
     339            array( $this, 'text_callback' ),
     340            $this->settings_key,
     341            $this->name,
     342            array(
     343                'name'        => 'container_css_classes',
     344                'label_for'   => 'container_css_classes',
     345                'description' => array(
     346                    __( 'Optional CSS classes to apply to the container wrapping the content preview and call to action for non-authenticated subscribers.', 'convertkit' ),
     347                ),
     348            )
     349        );
     350
    336351    }
    337352
  • convertkit/trunk/includes/blocks/broadcasts/block.json

    r3325326 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/broadcasts",
    55    "title": "Kit Broadcasts",
  • convertkit/trunk/includes/blocks/class-convertkit-block-form-builder-field-email.php

    r3403088 r3437320  
    3232     */
    3333    public $field_id = 'email';
     34
     35    /**
     36     * The type of field to render.
     37     *
     38     * @since   3.1.4
     39     *
     40     * @var     string
     41     */
     42    public $field_type = 'email';
    3443
    3544    /**
  • convertkit/trunk/includes/blocks/form-builder-field-custom/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder-field-custom",
    55    "title": "Kit Form Builder: Custom Field",
  • convertkit/trunk/includes/blocks/form-builder-field-email/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder-field-email",
    55    "title": "Kit Form Builder: Email Field",
  • convertkit/trunk/includes/blocks/form-builder-field-name/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder-field-name",
    55    "title": "Kit Form Builder: Name Field",
  • convertkit/trunk/includes/blocks/form-builder/block.json

    r3376520 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form-builder",
    55    "title": "Kit Form Builder",
  • convertkit/trunk/includes/blocks/form/block.json

    r3357832 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/form",
    55    "title": "Kit Form",
  • convertkit/trunk/includes/blocks/formtrigger/block.json

    r3325326 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/formtrigger",
    55    "title": "Kit Form Trigger",
  • convertkit/trunk/includes/blocks/product/block.json

    r3325326 r3437320  
    11{
    22    "$schema": "https://schemas.wp.org/trunk/block.json",
    3     "apiVersion": 1,
     3    "apiVersion": 2,
    44    "name": "convertkit/product",
    55    "title": "Kit Product",
  • convertkit/trunk/includes/class-convertkit-output-restrict-content.php

    r3399438 r3437320  
    12261226         */
    12271227        $call_to_action = apply_filters( 'convertkit_output_restrict_content_call_to_action', $call_to_action, $this->post_id );
     1228
     1229        // Fetch container CSS classes.
     1230        $container_css_classes = explode( ' ', $this->restrict_content_settings->get_by_key( 'container_css_classes' ) );
     1231
     1232        /**
     1233         * Define the container CSS classes to wrap the content preview and call to action within.
     1234         *
     1235         * @since   3.1.4
     1236         *
     1237         * @param   array  $container_css_classes    Container CSS classes.
     1238         * @param   int    $post_id                  Post ID.
     1239         */
     1240        $container_css_classes = apply_filters( 'convertkit_output_restrict_content_container_css_classes', $container_css_classes, $this->post_id );
     1241
     1242        // Remove empty CSS classes.
     1243        $container_css_classes = array_filter( $container_css_classes );
     1244
     1245        // If container CSS classes are set, return the content preview and call to action wrapped in the container.
     1246        if ( count( $container_css_classes ) ) {
     1247            return '<div class="' . trim( implode( ' ', map_deep( $container_css_classes, 'sanitize_html_class' ) ) ) . '">' . $content_preview . $call_to_action . '</div>';
     1248        }
    12281249
    12291250        // Return the content preview and its call to action.
  • convertkit/trunk/includes/class-convertkit-settings-restrict-content.php

    r3357832 r3437320  
    152152            'email_check_heading'    => __( 'We just emailed you a log in code', 'convertkit' ),
    153153            'email_check_text'       => __( 'Enter the code below to finish logging in', 'convertkit' ),
     154            'container_css_classes'  => '',
    154155        );
    155156
  • convertkit/trunk/includes/functions.php

    r3409026 r3437320  
    643643
    644644/**
     645 * Checks if the given Theme is active.
     646 *
     647 * @since  3.1.4
     648 *
     649 * @param   string $theme_name   Theme name.
     650 * @return  bool
     651 */
     652function convertkit_is_theme_active( $theme_name ) {
     653
     654    // Assume Theme isn't active if we can't detect it.
     655    if ( ! function_exists( 'wp_get_theme' ) ) {
     656        return false;
     657    }
     658
     659    // Check the Parent Theme if we're on a Child Theme.
     660    if ( wp_get_theme()->parent() ) {
     661        $theme = wp_get_theme()->parent();
     662    } else {
     663        $theme = wp_get_theme();
     664    }
     665
     666    return strtolower( $theme->get( 'Name' ) ) === strtolower( $theme_name );
     667
     668}
     669
     670/**
    645671 * Returns permitted HTML output when using wp_kses( ..., convertkit_kses_allowed_html()).
    646672 *
  • convertkit/trunk/languages/convertkit.pot

    r3423037 r3437320  
    1 # Copyright (C) 2025 Kit
     1# Copyright (C) 2026 Kit
    22# This file is distributed under the GPLv3 or later.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Kit (formerly ConvertKit) 3.1.3\n"
     5"Project-Id-Version: Kit (formerly ConvertKit) 3.1.4\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/convertkit\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2025-12-18T10:45:11+00:00\n"
     12"POT-Creation-Date: 2026-01-10T10:03:26+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.12.0\n"
     
    4040#: includes/blocks/class-convertkit-block-content.php:85
    4141#: includes/blocks/class-convertkit-block-form-builder-field-custom.php:72
    42 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:99
     42#: includes/blocks/class-convertkit-block-form-builder-field-email.php:108
    4343#: includes/blocks/class-convertkit-block-form-builder-field-name.php:90
    4444#: includes/blocks/class-convertkit-block-form-builder.php:353
     
    332332
    333333#: admin/section/class-convertkit-admin-section-form-entries.php:158
    334 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:100
     334#: includes/blocks/class-convertkit-block-form-builder-field-email.php:109
    335335msgid "Email"
    336336msgstr ""
     
    792792msgstr ""
    793793
     794#: admin/section/class-convertkit-admin-section-restrict-content.php:338
     795msgid "Container CSS Classes"
     796msgstr ""
     797
    794798#: admin/section/class-convertkit-admin-section-restrict-content.php:346
     799msgid "Optional CSS classes to apply to the container wrapping the content preview and call to action for non-authenticated subscribers."
     800msgstr ""
     801
     802#: admin/section/class-convertkit-admin-section-restrict-content.php:361
    795803msgid "Defines the text and button labels to display when a Page, Post or Custom Post has its Member Content setting defined."
    796804msgstr ""
    797805
    798 #: admin/section/class-convertkit-admin-section-restrict-content.php:359
     806#: admin/section/class-convertkit-admin-section-restrict-content.php:374
    799807msgid "Defines settings when a Page, Post or Custom Post type has its member content setting set to a Kit form."
    800808msgstr ""
    801809
    802 #: admin/section/class-convertkit-admin-section-restrict-content.php:372
     810#: admin/section/class-convertkit-admin-section-restrict-content.php:387
    803811msgid "Defines settings when a Page, Post or Custom Post type has its member content setting set to a Kit product."
    804812msgstr ""
    805813
    806 #: admin/section/class-convertkit-admin-section-restrict-content.php:386
     814#: admin/section/class-convertkit-admin-section-restrict-content.php:401
    807815msgid "Defines settings when a Page, Post or Custom Post type has its member content setting set to a Kit tag."
    808816msgstr ""
    809817
    810818#. translators: 1: General settings screen link, 2: Closing link tag
    811 #: admin/section/class-convertkit-admin-section-restrict-content.php:398
     819#: admin/section/class-convertkit-admin-section-restrict-content.php:413
    812820#, php-format
    813821msgid "Looking for reCAPTCHA settings? They can now be found in the %1$sGeneral settings screen%2$s."
     
    10121020#: includes/blocks/class-convertkit-block-content.php:84
    10131021#: includes/blocks/class-convertkit-block-form-builder-field-custom.php:71
    1014 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:98
     1022#: includes/blocks/class-convertkit-block-form-builder-field-email.php:107
    10151023#: includes/blocks/class-convertkit-block-form-builder-field-name.php:89
    10161024#: includes/blocks/class-convertkit-block-form-builder.php:352
     
    12041212
    12051213#: includes/blocks/class-convertkit-block-form-builder-field-custom.php:74
    1206 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:101
     1214#: includes/blocks/class-convertkit-block-form-builder-field-email.php:110
    12071215#: includes/blocks/class-convertkit-block-form-builder-field-name.php:92
    12081216msgid "Field"
     
    12421250msgstr ""
    12431251
    1244 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:68
     1252#: includes/blocks/class-convertkit-block-form-builder-field-email.php:77
    12451253msgid "Kit Form Builder: Email Field"
    12461254msgstr ""
    12471255
    1248 #: includes/blocks/class-convertkit-block-form-builder-field-email.php:94
     1256#: includes/blocks/class-convertkit-block-form-builder-field-email.php:103
    12491257msgid "Adds an email field to the Kit Form Builder."
    12501258msgstr ""
  • convertkit/trunk/readme.txt

    r3423037 r3437320  
    66Tested up to: 6.9
    77Requires PHP: 7.1
    8 Stable tag: 3.1.3
     8Stable tag: 3.1.4
    99License: GPLv3 or later
    1010License URI: https://www.gnu.org/licenses/gpl-3.0.html
     
    5353
    5454With the Form Builder block, you can:
     55
    5556- Add fields such as first name, email address, and custom fields
    5657- Apply tags and sequences to subscribers for powerful segmentation
     
    5960
    6061This makes the Form Builder block ideal for:
     62
    6163- Subscription forms to grow your email subscribers list
    6264- Contact forms that connect directly to Kit
     
    141143== Frequently asked questions ==
    142144
    143 = Does this plugin require a paid service? =
    144 
    145 No. You must first have an account on [kit.com](https://kit.com?utm_source=wordpress&utm_term=en_US&utm_content=readme), but you do not have to use a paid plan!
    146 
    147 = How do I refresh my available Forms, Landing Pages and Tags? =
    148 
    149 Either:
    150 
    151 - Navigate to the Plugin's Settings at `Settings > Kit`
    152 - Click the refresh button displayed next to the Form, Landing Page or Tag fields when creating/editing Pages or Posts to ensure your latest email newsletter forms are available
    153 
    154 = How do I automatically import Kit Broadcasts to WordPress Posts? =
    155 
    156 To import your past (and future) email newsletters from Kit to WordPress:
    157 
    158 - Navigate to the Plugin's Settings at `Settings > Kit`
    159 - Click the `Broadcasts` tab
    160 - Tick the `Enable Automatic Import` option
    161 - Configure other settings as necessary, and click `Save Changes` when done to streamline your email newsletter publishing
    162 
    163 = Where can I find the Plugin's Documentation? =
    164 
    165 Full Plugin documentation can be found [here](https://help.kit.com/en/articles/2502591-how-to-set-up-the-kit-plugin-on-your-wordpress-website?utm_source=wordpress&utm_content=readme).
     145= Is Kit free for email newsletter creators? =
     146
     147Yes! Kit is 100% free for your first 10,000 email subscribers - [sign up today](https://kit.com?utm_source=wordpress&utm_term=en_US&utm_content=readme). This makes it perfect for new newsletter creators, bloggers starting email marketing, and small membership sites. You can grow your email subscribers list, send newsletters, create landing pages, and even sell membership products without paying anything until you exceed 10,000 newsletter subscribers.
     148
     149= How do I create newsletter signup forms? =
     150
     151Create newsletter subscription forms directly in your Kit account using the visual form builder. Design inline forms, modal popups, slide-in forms, or sticky bars optimized for email subscriber conversion. Once created, the newsletter forms automatically sync with the WordPress plugin and become available for embedding on your site to grow your email subscribers list.
     152
     153= Can I create landing pages for email subscriber growth? =
     154
     155Yes! Design professional landing pages in Kit's landing page editor, then display them on any WordPress page. Landing pages are optimized specifically for email newsletter signups and subscriber conversion. Choose from pre-built landing page templates or customize your own. The plugin seamlessly integrates Kit landing pages into WordPress for consistent subscriber experience.
     156
     157= How does the membership site feature work? =
     158
     159The membership feature lets you restrict WordPress content to paying email subscribers or newsletter members. Create Products in Kit, then assign them to specific WordPress pages or posts. When email subscribers visit protected content, they're prompted to enter their email. If they've purchased the required Kit Product, they receive membership access via a magic link. No complex membership plugins needed.
     160
     161= Can I segment my email subscribers for targeted newsletters? =
     162
     163Absolutely! Kit provides powerful subscriber segmentation using tags. Automatically tag email subscribers based on which newsletter form they used, which links they clicked, or which Kit Products they purchased. Send targeted email newsletters to specific subscriber segments for more relevant email marketing campaigns and higher newsletter engagement rates.
     164
     165= Do I need coding knowledge to use this plugin? =
     166
     167No coding required! Create newsletter subscription forms, landing pages, and email campaigns using Kit's visual editors. Embed newsletter forms using native WordPress blocks or simple shortcodes. Build membership sites by selecting Products from dropdowns. Even custom newsletter forms in WordPress can be built using the drag-and-drop block editor without touching code.
     168
     169= How do I refresh available forms, landing pages, and tags? =
     170
     171Click the refresh button next to Form, Landing Page, or Tag dropdowns when editing Pages or Posts. This syncs your latest newsletter forms and products from Kit to WordPress. You can also refresh all resources at once by navigating to Settings > Kit and clicking refresh. This ensures your newest email subscriber capture forms are always available.
     172
     173= Can I automatically import email newsletters to WordPress? =
     174
     175Yes! Navigate to Settings > Kit > Broadcasts and enable automatic import. Your published email newsletters from Kit will automatically import as WordPress posts. Configure the import schedule, post author, category, and featured image settings. This keeps newsletter subscribers engaged by making your email content discoverable on your site.
     176
     177= What integrations work with email subscriber capture? =
     178
     179The plugin integrates with Contact Form 7, Gravity Forms, WooCommerce, WishList Member, Elementor, and more. Automatically add form submissions as email subscribers, tag WooCommerce customers for email marketing, sync membership levels with newsletter subscriber tags, and use native Elementor widgets for newsletter forms. Additional integrations available through separate plugins.
     180
     181= How do I display newsletter forms in specific locations? =
     182
     183You have multiple options for newsletter form placement. Set site-wide defaults that display newsletter signup forms automatically below posts and pages. Override defaults on individual posts to show specific email subscriber forms. Use blocks or shortcodes to embed newsletter forms within content at optimal conversion points. Add widget newsletter forms to sidebars and footers.
     184
     185= Can I create free membership content for newsletter subscribers? =
     186
     187Yes! You can gate content requiring only email subscription without requiring payment. This is perfect for exclusive newsletter subscriber content, free member communities, or content upgrades. Use Tag-based restrictions where entering an email and receiving membership access via magic link is all that's required. Great for building email subscriber loyalty.
     188
     189= Does this work with my WordPress theme? =
     190
     191The plugin works with any WordPress theme. Newsletter signup forms and landing pages are designed to adapt to your theme's styling. The Form Builder block uses your theme's CSS ensuring newsletter forms match your site perfectly. Inline forms blend seamlessly into content while modal, slide-in, and sticky bar newsletter forms maintain Kit's polished design.
     192
     193= How do I track email subscriber growth and conversions? =
     194
     195Track subscriber growth, newsletter form conversion rates, email campaign performance, and landing page analytics directly in your Kit dashboard. Monitor which newsletter forms convert best, which landing pages drive the most email subscribers, and which email newsletters get the highest engagement from your subscriber list. All metrics update in real-time.
     196
     197= What's the difference between inline and non-inline newsletter forms? =
     198
     199Inline newsletter forms embed directly within page content and scroll with the page. They're great for email subscriber capture within blog posts. Non-inline forms include modals (popups), slide-ins (appear from corners), and sticky bars (fixed to top/bottom). Non-inline newsletter forms demand attention and often achieve higher email subscriber conversion rates.
     200
     201= Can I customize newsletter form colors and styling? =
     202
     203Yes! Customize newsletter subscription forms in Kit's form editor matching your brand colors, fonts, and style. Adjust form button colors, input field styling, and background colors. For inline forms, the Form Builder block in WordPress uses your theme's styling automatically, ensuring newsletter forms blend seamlessly with your site design.
     204
     205= What happens when someone subscribes to my newsletter? =
     206
     207When visitors submit newsletter signup forms, they're added as email subscribers to your Kit account. You can configure forms to immediately add subscribers to your newsletter list, tag them for segmentation, or enroll them in automated email sequences. Subscribers receive welcome emails if configured, and you can start sending email newsletters immediately.
     208
     209= How do membership magic links work for subscribers? =
     210
     211When an email subscriber tries accessing protected membership content, they enter their email address. If they've purchased the required Kit Product or have the necessary tag, they receive an email containing a one-time code and magic link. Clicking the magic link or entering the code grants immediate membership access without requiring passwords.
     212
     213= Can I sell digital products through membership features? =
     214
     215Yes! Create Products in Kit and sell them directly to your email subscribers. Products can be one-time purchases, subscriptions, or tip jars. Assign Products to WordPress pages and posts as membership content. When newsletter subscribers purchase Products, they automatically get membership access to all associated content in WordPress.
     216
     217= Do newsletter forms slow down my site? =
     218
     219No. Newsletter subscription forms load asynchronously and are optimized for performance. The plugin only loads necessary assets on pages actually displaying newsletter forms. Landing pages are hosted on Kit's servers ensuring fast load times. The lightweight codebase ensures email subscriber capture doesn't impact your WordPress site speed.
     220
     221= How many newsletter forms can I create? =
     222
     223There's no limit to the number of newsletter subscription forms you can create in Kit. Design different forms for different audiences, pages, or lead magnets. Create targeted newsletter signup forms for each email subscriber segment. Test variations of forms to optimize conversion. All forms sync automatically with the WordPress plugin.
     224
     225= Can I schedule email newsletters to subscribers? =
     226
     227Yes! Kit's email marketing platform lets you schedule newsletter campaigns to send at optimal times for your email subscribers. Write newsletters in advance and schedule them for future delivery. Set up recurring newsletters that send automatically on a schedule. Ensure global email subscribers receive newsletters at appropriate times for their timezone.
     228
     229= What's the difference between tags and segments for email subscribers? =
     230
     231Tags are labels you apply to newsletter subscribers based on interests, behavior, or characteristics. Segments are filtered views of your subscriber list based on one or more tags. Use tags to organize email subscribers, then create segments to send targeted newsletters. For example, tag subscribers as "interested in courses" then create a segment for course email marketing.
     232
     233= Can I migrate existing email subscribers to Kit? =
     234
     235Yes! Kit provides easy import tools for migrating email subscribers from other platforms. Import CSV files containing subscriber data. The plugin maintains subscriber tags and preferences during migration. You can continue sending newsletters immediately after importing. Kit's migration support team helps with large subscriber list transfers.
     236
     237= How do I remove email subscribers from newsletters? =
     238
     239Email subscribers can unsubscribe from newsletters using links automatically included in every email campaign per email marketing regulations. You can also manually remove subscribers from Settings > Kit in WordPress or directly in your Kit account. Unsubscribed email addresses are automatically excluded from future newsletter sends.
     240
     241= Does this work with WooCommerce for email marketing? =
     242
     243Yes! The separate Kit for WooCommerce plugin adds powerful integrations. Automatically subscribe WooCommerce customers to email newsletters at checkout. Tag purchasers for targeted email marketing campaigns. Track purchase data for each newsletter subscriber. Send abandoned cart emails to recover lost sales. Build email subscriber value over time.
     244
     245= Can I create multiple membership tiers for subscribers? =
     246
     247Yes! Create different Kit Products for each membership tier. Assign Products to different WordPress content. Newsletter subscribers purchase the membership tier they want and automatically get access to corresponding content. Create Bronze, Silver, Gold membership tiers each with different Products and content access for paying email subscribers.
     248
     249= How do landing pages improve email subscriber conversions? =
     250
     251Landing pages are specifically designed for single conversion goals like email newsletter signups. They remove navigation and distractions, focusing visitors entirely on becoming email subscribers. Use compelling headlines, clear value propositions, social proof, and strong calls-to-action. Kit's landing page templates are proven to convert visitors into newsletter subscribers at high rates.
     252
     253= What email marketing automations can I create for subscribers? =
     254
     255Create welcome sequences greeting new email subscribers with your best content. Build product launch funnels promoting offers to newsletter segments. Set up abandoned cart sequences for WooCommerce email marketing. Create re-engagement campaigns for inactive newsletter subscribers. Configure behavioral automations tagging email subscribers based on email clicks and website activity.
     256
     257= Can I embed past email newsletters on my WordPress site? =
     258
     259Yes! Use the Broadcasts block or `[convertkit_broadcasts]` shortcode to display past email newsletters on any page or post. This keeps newsletter content discoverable for website visitors, drives email subscriber signups from engaged readers, and extends the life of newsletter content beyond inboxes.
     260
     261= How do I optimize newsletter forms for mobile email subscribers? =
     262
     263All newsletter subscription forms and landing pages are automatically mobile-responsive. Forms resize and reorganize for small screens ensuring easy email subscriber signup on phones and tablets. Test newsletter forms on mobile devices to verify the email subscriber experience. The Form Builder block uses responsive WordPress patterns for perfect mobile newsletter conversion.
     264
     265= What's the best strategy for growing email subscribers? =
     266
     267Use multiple newsletter form types strategically. Place inline newsletter forms within valuable blog posts where visitors are most engaged. Add exit-intent modal newsletter forms to capture abandoning visitors as email subscribers. Include sticky bar newsletter forms for persistent visibility. Create dedicated landing pages for lead magnets. Test and optimize all newsletter forms for maximum email subscriber growth.
     268
     269= Can I use newsletter forms with page builders? =
     270
     271Yes! The plugin includes integrations with popular page builders. Use native Elementor widgets for newsletter forms and email subscriber content. Divi modules available for newsletter integration. All page builders support the shortcode method for email subscriber forms. The WordPress block editor provides native blocks for newsletter capture.
     272
     273= How do I create a newsletter lead magnet funnel? =
     274
     275Create a compelling lead magnet (ebook, checklist, course) that solves a specific problem for your target email subscribers. Design a dedicated landing page promoting the lead magnet optimized for newsletter signups. Create a newsletter subscription form offering the lead magnet in exchange for email addresses. Set up an automated email sequence delivering the lead magnet and nurturing new newsletter subscribers.
     276
     277= What is the Form Builder block for email newsletter forms? =
     278
     279The Form Builder block is a native WordPress block that lets you create custom email newsletter subscription forms directly in the WordPress editor without any coding. Unlike embedding pre-designed forms from Kit, the Form Builder block gives you complete control to design newsletter signup forms that perfectly match your WordPress theme's styling and branding for optimal email subscriber conversion.
     280
     281= How does the Form Builder block differ from regular newsletter forms? =
     282
     283Regular newsletter forms are designed in Kit and embedded in WordPress. The Form Builder block lets you build email subscription forms entirely within WordPress using the block editor. Form Builder newsletter forms automatically inherit your theme's typography, colors, and spacing. You can customize every aspect including form fields, button styling, colors, spacing, and layout while maintaining your site's design consistency for email subscribers.
     284
     285= Can I customize Form Builder newsletter forms to match my brand? =
     286
     287Yes! The Form Builder block provides extensive customization options for email newsletter forms. Adjust typography including font families, sizes, and weights. Customize colors for form fields, buttons, labels, and backgrounds. Control spacing with margin and padding settings. Add custom CSS classes for advanced styling. Form Builder newsletter forms adapt to your WordPress theme while allowing granular control over email subscriber form appearance.
     288
     289= What fields can I add to Form Builder newsletter subscription forms? =
     290
     291The Form Builder block supports multiple field types for email newsletter signups. Add email address fields (required), first name fields, last name fields, and custom fields you've created in Kit. All fields can be marked as required or optional. This flexibility lets you collect exactly the email subscriber information you need while keeping newsletter forms simple and conversion-focused.
     292
     293= Does the Form Builder block work with Kit tags and sequences? =
     294
     295Absolutely! When building newsletter subscription forms with the Form Builder block, you can assign Kit tags to segment email subscribers automatically. Subscribe new email addresses to specific Kit sequences to trigger automated email marketing campaigns. Configure reCAPTCHA protection if enabled in your Kit account. Form Builder newsletter forms have full integration with Kit's email subscriber management features.
     296
     297= How do I add a Form Builder newsletter form to my WordPress site? =
     298
     299In the WordPress block editor, click the plus icon to add a new block and search for "Kit Form Builder." Add the block to your page or post. Configure your email newsletter form by adding fields like email and first name. Customize the styling, colors, and spacing to match your theme. Optionally assign tags or sequences for email subscriber segmentation. Publish to start capturing email subscribers with your custom newsletter form.
     300
     301= Can Form Builder newsletter forms collect custom subscriber data? =
     302
     303Yes! The Form Builder block supports custom fields you've created in your Kit account. Add custom fields to collect specific information from email newsletter subscribers like job titles, company names, interests, or any data relevant to your email marketing strategy. Custom field data syncs to Kit automatically, enabling advanced email subscriber segmentation and personalized newsletter campaigns.
     304
     305= Are Form Builder newsletter forms mobile responsive? =
     306
     307All Form Builder newsletter subscription forms are automatically mobile responsive. Forms adapt to screen sizes ensuring email subscribers can easily sign up on phones and tablets. The Form Builder block uses responsive WordPress patterns and follows your theme's mobile styling. Test newsletter forms on multiple devices to verify the optimal email subscriber experience across all screen sizes.
     308
     309= Can I use the Form Builder block for contact forms and email subscribers? =
     310
     311Yes! The Form Builder block works as both a newsletter subscription form and a contact form. Collect email addresses and additional information from visitors. When someone submits a Form Builder form, they're automatically added as email subscribers to your Kit account and can be tagged or added to sequences. This makes Form Builder perfect for dual-purpose forms capturing both contacts and newsletter subscribers.
     312
     313= Does the Form Builder block support spam protection for newsletter signups? =
     314
     315Yes! The Form Builder block integrates with Google reCAPTCHA v3 if configured in your Kit account at Settings > Kit > General. This protects your email newsletter forms from bot submissions and fake email subscribers. reCAPTCHA runs invisibly in the background, ensuring legitimate newsletter subscribers have a smooth signup experience while blocking spam from polluting your email list.
     316
     317= How does the Form Builder block handle newsletter form styling? =
     318
     319The Form Builder block uses your WordPress theme's CSS by default, ensuring newsletter subscription forms match your site design automatically. You can then customize individual elements including button colors, input field borders, label typography, and spacing. The block provides intuitive controls in the WordPress editor sidebar letting you style email newsletter forms visually without touching code while maintaining theme consistency.
     320
     321= Can I view Form Builder newsletter form submissions in WordPress? =
     322
     323Yes! Navigate to Settings > Kit > Form Entries to view all submissions from Form Builder newsletter forms. Search entries by email address, filter by submission date or API result, and export subscriber data as CSV files. This gives you a WordPress-based view of email newsletter signups alongside Kit's subscriber management, perfect for tracking email subscriber acquisition and form performance.
     324
     325= Where can I find complete plugin documentation? =
     326
     327Comprehensive documentation is available at: [Kit WordPress Plugin Setup Guide](https://help.kit.com/en/articles/2502591-how-to-set-up-the-kit-plugin-on-your-wordpress-website?utm_source=wordpress&utm_content=readme)
     328
     329The documentation covers newsletter form setup, landing page configuration, membership site creation, email marketing automation, subscriber segmentation, and all plugin features for growing your email newsletter.
    166330
    167331== Screenshots ==
    168332
    169 1. Create and customize stunning email subscription forms and landing pages in Kit
    170 2. Manage the WordPress plugin from a simple settings page in the WordPress admin
    171 3. Append Kit forms to Pages, Posts or other Custom Post Types to grow your email subscribers
    172 4. Configure a specific Kit form to display on a specific Page or Post
    173 5. Display your Kit forms anywhere on your WordPress web site using the form block / shortcode
    174 6. Configure a Kit landing page to be used in place of a WordPress Page, to capture email subscribers
    175 7. Automatically import your past email newsletters to WordPress Posts
    176 8. Create your paid membership site by assigning paid Kit Products to your existing WordPress content
    177 9. Set up form and landing page automations in Kit
    178 10. Track subscriber growth and email newsletter performance
     3331. Create stunning email newsletter subscription forms and landing pages in Kit's visual editor optimized for email subscriber conversion
     3342. Simple WordPress plugin settings page to manage email newsletter forms, landing pages, and membership features for subscribers
     3353. Automatically append newsletter signup forms to Posts, Pages, or Custom Post Types to capture email subscribers site-wide
     3364. Configure specific email newsletter forms on individual Pages and Posts for targeted subscriber growth and email marketing
     3375. Display newsletter subscription forms anywhere using blocks or shortcodes to maximize email subscriber capture opportunities
     3386. Replace WordPress pages with Kit landing pages optimized specifically for email newsletter subscriber acquisition
     3397. Automatically import published email newsletters from Kit to WordPress Posts keeping subscribers engaged with searchable newsletter content
     3408. Build paid membership sites by assigning Kit Products to WordPress content accessible only to paying email subscribers
     3419. Set up form automations and email marketing sequences in Kit to nurture newsletter subscribers and drive conversions
     34210. Track email subscriber growth, newsletter performance, landing page conversions, and membership site analytics in real-time
    179343
    180344== Changelog ==
     345
     346### 3.1.4 2026-01-12
     347* Added: Settings: Member Content: Container CSS Class setting
     348* Added: Member Content: Automatically add `grve-container` CSS class for Impeka Theme
     349* Fix: Form Builder: Set email field type=email
     350* Fix: Blocks: Use Spinner when ProgressBar component unavailable in WordPress versions older than 6.3
     351* Updated: Blocks: Use apiVersion 2
    181352
    182353### 3.1.3 2025-12-18
  • convertkit/trunk/resources/backend/css/gutenberg.css

    r3423037 r3437320  
    3737    right: 20px;
    3838    line-height: 22px;
     39    width: auto;
    3940}
    4041
    41 .wp-block .convertkit-no-content .convertkit-progress-bar {
     42.wp-block .convertkit-no-content .convertkit-progress-bar,
     43.wp-block .convertkit-no-content .spinner {
     44    float: none;
    4245    margin: 0 auto;
    4346}
  • convertkit/trunk/resources/backend/js/gutenberg.js

    r3423037 r3437320  
    4242        const el = element.createElement;
    4343        const { registerBlockType } = blocks;
    44         const { InspectorControls, InnerBlocks } = editor;
    45         const { Fragment, useState } = element;
     44        const { InspectorControls, InnerBlocks, useBlockProps } = editor;
     45        const { useState } = element;
    4646        const {
    4747            Button,
     
    365365         * @return {Object}       Block settings sidebar elements.
    366366         */
    367         const editBlock = function (props) {
     367        const EditBlock = function (props) {
     368            const blockProps = useBlockProps();
     369
     370            // Refresh button disabled state on DisplayNoticeWithLink.
     371            // This must be here to avoid React error on hook order change when the user e.g.
     372            // connects their Kit account from within the block itself.
     373            const [buttonDisabled, setButtonDisabled] = useState(false);
     374
    368375            // If requesting an example of how this block looks (which is requested
    369376            // when the user adds a new block and hovers over this block's icon),
    370377            // show the preview image.
    371378            if (props.attributes.is_gutenberg_example === true) {
    372                 return (
    373                     Fragment,
    374                     {},
     379                return el(
     380                    'div',
     381                    blockProps,
    375382                    el('img', {
    376383                        src: block.gutenberg_example_image,
     
    382389            // for this block, show a message in the block to tell the user what to do.
    383390            if (!block.has_access_token || !block.has_resources) {
    384                 return DisplayNoticeWithLink(props);
     391                return DisplayNoticeWithLink(
     392                    props,
     393                    blockProps,
     394                    buttonDisabled,
     395                    setButtonDisabled
     396                );
    385397            }
    386398
     
    402414                    props
    403415                );
    404                 return editBlockWithPanelsAndPreview(panels, preview);
     416                return editBlockWithPanelsAndPreview(
     417                    panels,
     418                    preview,
     419                    blockProps
     420                );
    405421            }
    406422
     
    417433                    block.gutenberg_help_description
    418434                );
    419                 return editBlockWithPanelsAndPreview(panels, preview);
     435                return editBlockWithPanelsAndPreview(
     436                    panels,
     437                    preview,
     438                    blockProps
     439                );
    420440            }
    421441
     
    444464                    })
    445465                );
    446                 return editBlockWithPanelsAndPreview(panels, preview);
     466                return editBlockWithPanelsAndPreview(
     467                    panels,
     468                    preview,
     469                    blockProps
     470                );
    447471            }
    448472
     
    456480                className: 'convertkit-ssr-' + block.name,
    457481            });
    458             return editBlockWithPanelsAndPreview(panels, preview);
     482            return editBlockWithPanelsAndPreview(panels, preview, blockProps);
    459483        };
    460484
     
    465489         * @since   3.0.0
    466490         *
    467          * @param {Object} panels  Block panels.
    468          * @param {Object} preview Block preview.
    469          * @return {Object}         Block settings sidebar elements.
    470          */
    471         const editBlockWithPanelsAndPreview = function (panels, preview) {
    472             return el(
    473                 // Sidebar Panel with Fields.
    474                 Fragment,
    475                 {},
     491         * @param {Object} panels     Block panels.
     492         * @param {Object} preview    Block preview.
     493         * @param {Object} blockProps Block properties.
     494         * @return {Object}           Block settings sidebar elements.
     495         */
     496        const editBlockWithPanelsAndPreview = function (
     497            panels,
     498            preview,
     499            blockProps
     500        ) {
     501            return el('div', blockProps, [
    476502                el(InspectorControls, {}, panels),
    477                 // Block Preview.
    478                 preview
    479             );
     503                preview,
     504            ]);
    480505        };
    481506
     
    489514        const saveBlock = function () {
    490515            if (typeof block.gutenberg_template !== 'undefined') {
    491                 return el('div', {}, el(InnerBlocks.Content));
     516                // Use useBlockProps.save() to preserve styling classes and attributes
     517                // from block supports (colors, typography, spacing, etc.)
     518                const blockProps = useBlockProps.save();
     519                return el('div', blockProps, el(InnerBlocks.Content));
    492520            }
    493521
     
    505533         * @since   2.2.5
    506534         *
    507          * @param {Object} props Block properties.
    508          * @return {Object}       Notice.
    509          */
    510         const DisplayNoticeWithLink = function (props) {
    511             // useState to toggle the refresh button's disabled state.
    512             const [buttonDisabled, setButtonDisabled] = useState(false);
    513 
     535         * @param {Object}   props             Block properties.
     536         * @param {Object}   blockProps        Block properties.
     537         * @param {boolean}  buttonDisabled    Whether the refresh button is disabled (true) or enabled (false)
     538         * @param {Function} setButtonDisabled Function to enable or disable the refresh button.
     539         * @return {Object}                     Notice.
     540         */
     541        const DisplayNoticeWithLink = function (
     542            props,
     543            blockProps,
     544            buttonDisabled,
     545            setButtonDisabled
     546        ) {
    514547            // Holds the array of elements to display in the notice component.
    515548            let elements;
     
    542575            return el(
    543576                'div',
    544                 {
    545                     // convertkit-no-content class allows resources/backend/css/gutenberg.css
    546                     // to apply styling/branding to the block.
    547                     className:
    548                         'convertkit-' + block.name + ' convertkit-no-content',
    549                 },
    550                 elements
     577                blockProps,
     578                el(
     579                    'div',
     580                    {
     581                        // convertkit-no-content class allows resources/backend/css/gutenberg.css
     582                        // to apply styling/branding to the block.
     583                        className:
     584                            'convertkit-' +
     585                            block.name +
     586                            ' convertkit-no-content',
     587                    },
     588                    elements
     589                )
    551590            );
    552591        };
     
    561600         */
    562601        const loadingIndicator = function (props) {
     602            // If the ProgressBar component is not available i.e. WordPress < 6.3, return a spinner.
     603            if (typeof ProgressBar === 'undefined') {
     604                return el('span', {
     605                    key: props.clientId + '-spinner',
     606                    className: 'spinner is-active convertkit-block-refreshing',
     607                });
     608            }
     609
    563610            return el(ProgressBar, {
    564611                key: props.clientId + '-progress-bar',
    565                 className: 'convertkit-progress-bar',
     612                className:
     613                    'convertkit-progress-bar convertkit-block-refreshing',
    566614            });
    567615        };
     
    852900
    853901            // Editor.
    854             edit: editBlock,
     902            edit: EditBlock,
    855903
    856904            // Output.
  • convertkit/trunk/wp-convertkit.php

    r3423037 r3437320  
    1010 * Plugin URI: https://kit.com/
    1111 * Description: Display Kit (formerly ConvertKit) email subscription forms, landing pages, products, broadcasts and more.
    12  * Version: 3.1.3
     12 * Version: 3.1.4
    1313 * Author: Kit
    1414 * Author URI: https://kit.com/
     
    2828define( 'CONVERTKIT_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
    2929define( 'CONVERTKIT_PLUGIN_PATH', __DIR__ );
    30 define( 'CONVERTKIT_PLUGIN_VERSION', '3.1.3' );
     30define( 'CONVERTKIT_PLUGIN_VERSION', '3.1.4' );
    3131define( 'CONVERTKIT_OAUTH_CLIENT_ID', 'HXZlOCj-K5r0ufuWCtyoyo3f688VmMAYSsKg1eGvw0Y' );
    3232define( 'CONVERTKIT_OAUTH_CLIENT_REDIRECT_URI', 'https://app.kit.com/wordpress/redirect' );
     
    146146require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/forminator/class-convertkit-forminator-settings.php';
    147147
     148// Impeka Integration.
     149require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/class-convertkit-impeka.php';
     150
    148151// Uncode Integration.
    149152require_once CONVERTKIT_PLUGIN_PATH . '/includes/integrations/class-convertkit-uncode.php';
Note: See TracChangeset for help on using the changeset viewer.