1. Home
  2. /
  3. Docs
  4. /
  5. OrderNotify 訂單推播外掛...
  6. /
  7. 開發人員文件
  8. /
  9. action – wc_notify_...

action – wc_notify_param

新增右側欄可帶入參數的項目,帶有一個 $param,同樣是 Metabox 物件,由於我希望可以帶入特定表單的欄位,因此使用 Fluent Form 提供的 fluentFormApi 裡面的 labels() 方法,就能取得表單欄位的值與標籤,程式碼範例如下:

<?php

/**
 * 新增可帶入參數
 */
add_action(
	'wc_notify_param',
	function( $param ) {
		$forms = get_fluent_forms();

		if ( ! $forms ) {
			return false;
		}

		$html = '';

		foreach ( $forms as $form ) {
			$form_api  = fluentFormApi( 'forms' )->form( $formId = $form->id );
			$form_name = $form->title;
			$labels    = $form_api->labels();
			$html     .= '<div class="p:5|10 bg:white wc-notify-params-toggle min-h:140">';
			$html     .= '
			<div>
				<ul class="d:flex flex-wrap:wrap mb:0" data-show-by="wc_notify_trigger_form" data-show-value="' . $form->id . '">';
			foreach ( $labels as $input => $label ) {
				$html .= '
				<li class="mr:10">
					<button class="btn-copy cursor:pointer rel border:0 p:5|8 r:4 bg:#eee bg:#ddd:hover" data-clipboard-text="{{' . $input . '}}">' . ucwords( str_replace( '_', ' ', $label ) ) . '
						<span class="opacity:0 pointer-events:none abs bottom:-20 bg:#2271b1 f:white p:3|5 f:12 r:2 left:50% translate(-50%,0) z:10 white-space:nowrap">' . __( 'Copied!', 'wc-notify' ) . '
							<i class="abs bottom:18 left:50% translate(-50%,0) w:0 h:0 border-style:solid; border-width:0|8px|10px|8px border-color:transparent|transparent|#2271b1|transparent z:5"></i>
						</span>
					</button>
				</li>';
			}
			$html .= '</ul></div>';
			$html .= '</div>';
		}

		$param->addHtml(
			array(
				'id'   => 'metabox_fluent_form_field',
				'html' => '<div class="data-show">' . $html . '</div>',
			),
		);
	}
);

這邊的作法是使用迴圈取得所有表單的所有欄位,然後再透過前端根據目前所選的表單來顯示,可以看到 $labels 變數存的就是欄位的值與標籤。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料