yikesinc/yikes-inc-easy-mailchimp-extender

由 Code Parrots 开发的强大的 WordPress Mailchimp 插件。

6.9.0 2024-02-26 08:24 UTC

README

Build Status Scrutinizer Code Quality Code Coverage Build Status

Easy Forms for Mailchimp

WordPress Rating License WordPress plugin WordPress

最新稳定版候选发布

这是由 YIKES, Inc. 开发的 Easy Forms for Mailchimp 插件的开发仓库,我们在这里开发新功能和修复错误。

最低要求

  • WordPress 3.8+
  • PHP v5.3+

插件预览截图

Cloudup 图库

文档

有关完整文档,请访问 我们的知识库

集成

Easy Forms for Mailchimp 与许多流行的第三方 WordPress 插件兼容良好

  • WooCommerce
  • Easy Digital Downloads
  • BuddyPress
  • BbPress
  • Contact Form 7
  • Visual Composer

有问题?

有任何问题?请随时在问题跟踪器中打开一个问题,我们将尽快回复您。

Grunt.js

要使用 Grunt 进行开发,请在开发过程中将 Gruntfile.js 文件放置在插件根目录内 (/wp-content/yikes-inc-easy-mailchimp-extender/)。Gruntfile.js 内部的路径设置为相对于插件根目录,因此如果不更改路径而将其放置在其他位置,将导致错误。

首先,请确保将最新版本的 Grunt 安装到本地项目目录中。

$ npm install -g grunt -cli
$ npm install -g grunt

最后,运行 install 任务以安装所需的依赖项。

$ npm install
短代码

[yikes-mailchimp form="#"]

短代码参数完整列表
  • form - 你要显示的表单的 ID (必需)
  • submit - 表单下面的提交按钮的文本 (可选 - 默认为 "提交")
  • title - 在表单上方显示标题 (1 或 0) (可选 - 默认为 0)
  • description - 在表单上方显示描述 (1 或 0) (可选 - 默认为 0)
API 密钥常量
  • 一些用户请求能够在 wp-config.php 中存储他们的 API 密钥。从版本 6.1.2 开始,用户现在可以在 wp-config.php 中定义一个新的常量 YIKES_MC_API_KEY 并将 API 密钥分配在那里,然后将在整个插件中使用该 API 密钥。注意:当你定义常量时,你仍然需要进入设置页面并更新插件选项。

示例:define( 'YIKES_MC_API_KEY', '12345679-us2' );

CSS 准备好类
2 列布局
  • field-left-half / field-right-half - 将此类分配给将字段放置在 2 列表单布局的左侧/右侧列。
3 列布局
  • field-left-third / field-right-third - 将此类分配给将字段放置在 3 列表单布局的最左侧/最右侧列。
2/3/4 列单选按钮
  • option-2/3/4-col - 将单选按钮或复选框选项拆分为 2、3 或 4 列
过滤器 + 钩子
过滤器
  • yikes-mailchimp-form-title - 修改指定表单的表单标题的输出。@params: $title, $form_id
  • yikes-mailchimp-form-description - 修改指定表单的表单描述的输出。@params: $description, $form_id
  • yikes-mailchimp-redirect-timer - 修改用户在看到成功消息后跳转之前的时间(毫秒)。默认值:1500 - @params: $time, $form_id
  • yikes-mailchimp-redirect-url - 修改用户在成功提交后将被跳转到的页面URL。@params: $url, $form_id, $page_data
  • yikes-mailchimp-filter-before-submissionyikes-mailchimp-filter-before-submission-{$form_id} - 在合并变量发送到Mailchimp之前捕获。@params: $merge_variables
  • yikes-mailchimp-after-submissionyikes-mailchimp-after-submission-{$form_id} - 在合并变量发送到Mailchimp之后捕获。@params: $merge_variables
  • yikes-mailchimp-user-role-access - 通过能力修改可以访问此插件页面的用户。默认:manage_options - @params: $capability
  • yikes-mailchimp-international-phone-pattern - 修改可接受的国际电话号码格式的正则表达式模式。默认:'[0-9,-,+]{1,}' - @params: $regex_pattern
  • yikes-mailchimp-us-phone-pattern - 修改可接受的美国电话号码格式的正则表达式模式。默认:^(\([0-9]{3}\)|[0-9]{3}-)[0-9]{3}-[0-9]{4}$ - @params: $regex_pattern
  • yikes-mailchimp-zip-pattern - 修改邮编的正则表达式模式。默认:\d{5,5}(-\d{4,4})? - @params: $regex_pattern
  • yikes-mailchimp-process-default-tag - 修改文本字段的默认表单字段值。@params: $default_value
  • yikes-mailchimp-{$merge_tag}-label - 修改指定表单字段或兴趣组的标签文本。@params: $label
  • yikes-mailchimp-{$merge_tag}-description - 修改指定表单字段或兴趣组的描述文本(注意:如果针对兴趣组,则使用group_id而不是合并标签)。@params: $description_content, $form_id。
  • yikes-mailchimp-address-{$type}-label - 修改特定地址字段(例如addr1)的字段子标签文本。@params: $label
  • yikes-mailchimp-form-submit-button - 修改提交按钮以满足您的需求。@params: $submit_button, $form_id
  • yikes-mailchimp-form-submit-button-text - 修改提交按钮文本。默认:submit - @params: $submit_button_text, $form_id
  • yikes-mailchimp-form-submit-button-classes - 向提交按钮添加额外的类以进行进一步样式化。@params: $classes, $form_id
  • yikes-mailchimp-form-container-class - 向包裹表单的<section>元素容器添加额外的类。@params: $class_name, $form_id
  • yikes-mailchimp-form-class - 向您的opt-in表单的<form>元素添加额外的类。@params: $class_name, $form_id
  • yikes-mailchimp-front-end-form-action-links - 在编辑表单、自定义表单等旁边添加自定义前端操作链接。@params: $form_action_links, $form_id, $form_name
  • yikes-mailchimp-custom-default-value-tags - 定义您自己的自定义预定义标签以填充默认值字段 - 这些标签出现在模态框中。@params: $pre_defined_tags_array
  • yikes-mailchimp-parse-custom-default-value - 将您的自定义默认合并标签处理为自定义值以填充表单字段(注意:与yikes-mailchimp-custom-default-value-tags过滤器相结合)。@params: $default_tag
  • yikes-mailchimp-field-data - 过滤表单字段数据,例如占位符、标签等。@params: $field_array, $field, $form_id
  • yikes-mailchimp-subscriber-count-value - 修改给定Mailchimp列表的总订阅者数的返回值。@params: $subscriber_count
  • yikes-mailchimp-frontend-content - 为此插件提供自定义内容过滤器以防止他人在不希望的位置挂钩。
  • yikes-mailchimp-recaptcha-parameters - 修改所有可能的reCAPTCHA短代码参数。@params: $recaptcha_parameter_array, $form_id
  • yikes-mailchimp-preloader - 添加自定义预加载图像。默认:WordPress的wpspin_light.gif。@params: $url_to_spinner_gif
  • yikes-mailchimp-update-email-subject - 过滤生成并发送时用户需要更新其订阅信息时生成的电子邮件的主题行。@params: $email_subject
  • yikes-mailchimp-update-email-content - 过滤生成并发送时用户需要更新其订阅信息时生成的电子邮件的内容。@params: $email_body
  • yikes-mailchimp-success-response - 修改任何成功响应文本。@参数:$response_text, $form_id, $submitted_form_variables
  • yikes-mailchimp-default-country-value - 修改国家下拉列表中默认选中的国家。默认:US - @参数:$country_slug
  • yikes-mailchimp-recaptcha-required-error - 过滤在 reCAPTCHA 提交过程中出现错误时显示给用户的错误信息。@参数:$error_text, $form_id
  • yikes-mailchimp-sslverify - 在尝试使用 Mailchimp API 服务器验证您的 API 密钥时切换 sslverify 开关。默认:true(开启)- @参数:$use_ssl
  • 版本 6.3.0
  • yikes-mailchimp-success-double-optin-response - 过滤“成功:双重确认”自定义消息。@参数:$message, $form_id
  • yikes-mailchimp-success-single-optin-response - 过滤“成功:单次确认”自定义消息。@参数:$message, $form_id
  • yikes-mailchimp-success-resubscribed-response - 过滤“成功:重新订阅”自定义消息。@参数:$message, $form_id
  • yikes-mailchimp-user-already-subscribed-link-text - 过滤“成功:带有电子邮件配置文件更新链接的重新订阅”自定义消息。@参数:$message, $form_id
  • yikes-mailchimp-general-error-response - 过滤“错误:一般”自定义消息。@参数:$message, $form_id
  • yikes-mailchimp-user-already-subscribed-text - 过滤“错误:不允许重新订阅”自定义消息(注意:这取代了 yikes-mailchimp-user-already-subscribed-error)。@参数:$message, $form_id
  • yikes-mailchimp-filter-groups-before-submissionyikes-mailchimp-filter-groups-before-submission-{$form_id} - 在提交之前过滤兴趣组。@参数:$groups, $form_id
  • yikes-mailchimp-address-2-required - 修改地址 2 字段的 required 值。默认:''(它永不要求)- @参数:$required, $form_id
  • yikes-mailchimp-filter-subscribe-requestyikes-mailchimp-filter-subscribe-request-{$form_id} - 过滤发送到 Mailchimp API 的所有字段(不仅仅是表单字段)。@参数:$subscribe_body, $form_id
  • yikesinc_eme_default_api_version - 过滤 API 版本。默认:3.0 - @参数:$version
  • yikesinc_eme_api_url - 过滤用于请求 Mailchimp API 的 URL。@参数:$full_path, $path
  • yikesinc_eme_api_user_agent - 过滤 API 请求中使用的用户代理。@参数:$user_agent
  • yikesinc_eme_api_auth_headers - 过滤 API 请求中使用的身份验证头。@参数:$auth_headers, $api_version
  • yikesinc_eme_api_headers - 过滤用于请求 Mailchimp API 的头。@参数:$headers, $path, $method, $params
  • yikesinc_eme_api_timeout - 过滤发送 API 请求时使用的超时时间(以 为单位)。默认:15 @参数:$timeout
  • yikesinc_eme_api_args - 过滤用于请求 Mailchimp API 的参数。@参数:$args, $path, $method, $params
钩子
  • yikes-mailchimp-form-submissionyikes-mailchimp-form-submission-{$form_id} - 在表单提交时对用户电子邮件 + 表单数据进行某些操作。@参数:$email, $merge_variables, $form_id, $notifications
  • yikes-mailchimp-after-submissionyikes-mailchimp-after-submission-{$form_id} - 仅对 $merge_variables 执行某些操作(注意:这些操作在 yikes-mailchimp-form-submission 后立即触发)。
  • yikes-mailchimp-before-submissionyikes-mailchimp-before-submission-{$form_id} - 在 API 请求之前对 $merge_variables 执行某些操作。@参数:$merge_variables
  • yikes-mailchimp-after-form - 在表单加载后执行某些操作。@参数:$form_id
  • yikes-mailchimp-before-checkbox - 在所有集成之前对选项复选框执行某些操作(例如输出自定义内容)。
  • yikes-mailchimp-after-checkbox - 在所有集成之后对选项复选框执行某些操作(例如输出自定义内容)。
  • yikes-mailchimp-support-page - 在支持页面上执行某些操作(例如输出自定义内容)(注意:我们使用此方法为高级用户添加支持表单)。
  • yikes-mailchimp-edit-form-section-links - 在“自定义消息”旁边添加到编辑表单页面的附加链接。
  • yikes-mailchimp-edit-form-sections - 在编辑表单页面上添加自定义部分。
  • yikes-mailchimp-edit-form-notice - 显示自定义通知的钩子。
  • yikes-mailchimp-shortcode-enqueue-scripts-styles - 将自定义脚本和样式排队的钩子,无论短代码在哪里使用。@参数:$form_id
  • yikes-mailchimp-additional-form-fields - 定义在所有表单下方添加的附加字段。@参数:$form_data
  • yikes-mailchimp-custom-form-actions - 在管理表单页面添加自定义操作链接(与编辑、复制、短代码、删除并列)。@参数:$form_id
  • yikes-mailchimp-list-form-fields-metabox - 在查看列表页面的“表单字段”元框中添加附加内容。
  • yikes-mailchimp-list-interest-groups-metabox - 在查看列表页面的兴趣组元框内添加附加内容。
扩展钩子
  • yikes-mailchimp-menu - 在“Easy Mailchimp”菜单项内部添加附加菜单项的钩子
  • yikes-mailchimp-settings-field - 注册附加设置字段的钩子,用于插件
  • yikes-mailchimp-ADDON-SLUG-options-path - 加载自定义设置页面的钩子
助手短代码

显示当前订阅者数量 [yikes-mailchimp-subscriber-count form="1"]

显示特定列表的当前订阅者数量。传递要显示的表单ID。(也接受list="mailchimp_list_id")

如果您想在表单描述中使用片段,您可以完全排除表单ID和列表ID,短代码将引用与显示的表单关联的列表。

示例表单描述:加入我们的[yikes-mailchimp-subscriber-count]快乐的订阅者,他们收到了我们的邮件列表!

在前端可能显示为:加入1,543名快乐的订阅者,他们收到了我们的邮件列表!

自定义编辑表单部分API

由于我们已经构建了一些扩展功能的基础插件,我们还构建了一个API,允许用户在编辑表单屏幕上快速定义自定义部分。这允许您将额外的数据分配给您的表单。

我们使用此API广泛构建编辑表单页面的附加部分。

示例

首先在正确位置挂钩,并附加一个函数

add_action( 'yikes-mailchimp-edit-form-section-links' , 'add_custom_section_link' );
add_action( 'yikes-mailchimp-edit-form-sections' , 'render_custom_section' );

接下来,通过传递一个多维数组来定义您的部分和字段。

/* Add custom link to the links (next to fields & custom messages) */
public function add_custom_section_link() {
	// creating a new link on the edit form page
	Yikes_Inc_Easy_Mailchimp_Extender_Helper::add_edit_form_section_link( array(
		'id' => 'custom-section', // section id
		'text' => 'Custom Section', // the text that will display in the link
		'icon' => 'admin-appearance' // dashicon icon class
	) );

	// creating a new link on the edit form page
	Yikes_Inc_Easy_Mailchimp_Extender_Helper::add_edit_form_section_link( array(
		'id' => 'custom-section-2', // section id
		'text' => 'Custom Section 2', // the text that will display in the link
		'icon' => 'admin-appearance' // dashicon icon class
	) );
}

/* Add custom section associated with link created above */
public static function render_custom_section() {
	// defining a new section, associated with the link above
	Yikes_Inc_Easy_Mailchimp_Extender_Helper::add_edit_form_section( array(
		'id' => 'custom-section',  // section id (must match link id above)
		'main_title' => 'Main Section Title', // title of the main block of this custom section
		'main_description' => __( 'This is a custom description for the main section' , 'test' ),
		'main_fields' => array(
			array(
				'label' => 'Custom Field #1', // label text for this field
				'placeholder' => 'Placeholder Value',  // placeholder value for the input field
				'type' => 'text', // type of field (text,select,checkbox,radio)
				'id' => 'custom-field-1', // field id - determines how data is saved in database
				// 'description' => __( 'Testing custom description for field #1' , 'test' ), // field description
			),
			array(
				'label' => 'Custom Field #2', // label text for this field
				'placeholder' => 'Placeholder Value #2', // placeholder value for the input field
				'type' => 'text', // type of field (text,select,checkbox,radio)
				'id' => 'custom-field-2', // field id - determines how data is saved in database
				'description' => __( 'Testing custom description for field #2' , 'test' ), // field description
			),
		),
		'sidebar_title' => 'Sidebar Section Title', // sidebar title of the sidebar section
		'sidebar_description' => __( 'This is a custom description for the sidebar section' , 'test' ),
		'sidebar_fields' => array(
			array(
				'label' => 'Dropdown Field',
				'type' => 'select',
				'options' => array(
					'1' => 'one',
					'2' => 'two',
					'3' => 'three',
				),
				'id' => 'select-field',
				'description' => __( 'this is a select field.' , 'test' ),
			),
		),
	) );
}