// تعریف ثابتها (اگر تعریف نشدهاند)
if (!defined('AASCO_SERVICE_FORMS_PATH')) {
define('AASCO_SERVICE_FORMS_PATH', plugin_dir_path(__FILE__));
}
if (!defined('AASCO_SERVICE_FORMS_URL')) {
define('AASCO_SERVICE_FORMS_URL', plugin_dir_url(__FILE__));
}
// بارگذاری اسکریپتها فقط در صفحات حاوی شورتکد
function aasco_service_forms_enqueue_scripts() {
if (is_singular() && has_shortcode(get_post()->post_content, 'aasco_form')) {
wp_enqueue_script(
'aasco-form-submit',
AASCO_SERVICE_FORMS_URL . 'js/form-submit.js',
[],
null,
true
);
wp_localize_script('aasco-form-submit', 'aascoFormAjax', [
'ajax_url' => admin_url('admin-ajax.php'),
]);
}
}
add_action('wp_enqueue_scripts', 'aasco_service_forms_enqueue_scripts');
// شورتکد نمایش فرم و فایل JS اختصاصی فرم
add_shortcode('aasco_form', function() {
if (!is_page()) return '';
global $post;
$form_id = get_post_meta($post->ID, 'cf7_form_id', true);
$js_file = get_post_meta($post->ID, 'cf7_js_file', true);
if (!$form_id) return '
فرمی برای این صفحه تنظیم نشده است.
';
ob_start();
echo do_shortcode("[contact-form-7 id=\"{$form_id}\"]");
if ($js_file) {
$relative_path = 'js/forms/' . $js_file;
$file_path = AASCO_SERVICE_FORMS_PATH . $relative_path;
$file_url = AASCO_SERVICE_FORMS_URL . $relative_path;
if (file_exists($file_path)) {
echo "";
} else {
echo "";
}
}
return ob_get_clean();
});
فروشگاه آس
پرش به محتوا