javascript - 为什么我无法通过 Ajax 获取 WP 自定义字段值或发布 ID?

标签 javascript php jquery ajax wordpress

我写了一个代码,它根据访问者的位置生成一个链接,它工作得很好,但我发现生成的代码被缓存了,因为我使用的是整页缓存,所以我虽然要解决这个问题,但我可以使用 ajax 来加载该链接。我使用了下面的代码,它完美地获取了我需要的一些变量,例如位置变量和链接域变量等。但是我无法获取 WooCommerce 自定义字段数据,甚至无法获取它只是返回空白的产品 ID。

我正在使用这段代码来获取自定义字段,当直接在函数中使用时,它可以完美地工作,但是不能让它在 ajax 中工作

$uk_asin = get_post_meta(get_post()->ID, "wccaf_uk_asin", true );

我在 functions.php 中使用了该代码

add_action( 'woocommerce_before_add_to_cart_button', 'affiliate_link_ajax', 11);
function affiliate_link_ajax() {    
?>
<script>
jQuery(document).ready(function(){

             jQuery.ajax({
                url: "<?php echo admin_url('admin-ajax.php'); ?>",
                type: 'POST',
                data: {
                action: 'getmyfunctionform1'
                },
                dataType: 'html',
                success: function(response) {

                jQuery("#myResultsform1").html(response);

                }

        }); 
    });
</script> 
<!-- end Ajax call to getmyfunctionform1 smc 11-22-2013 -->

<div id="myResultsform1"></div>
<?php
}

还有 funnctions.php 中的这段代码

// Ajax Function to Load PHP Function myfunctionform1 smc 11/22/2013

add_action('wp_ajax_getmyfunctionform1', 'myfunctionform1');
add_action('wp_ajax_nopriv_getmyfunctionform1', 'myfunctionform1');

function myfunctionform1() { 
    $uk_asin = get_post_meta(get_post()->ID, "wccaf_uk_asin", true );
echo $uk_asin;
// Whatever php and or html you want outputed by the ajax call in template file

die(); } // important must use

// end Ajax Function to Load PHP Function myfunctionform1 smc 11/22/2013

如果答案很简单,我将不胜感激,因为我对编码还是很陌生

最佳答案

将您的帖子 ID 传递给您的 AJAX 请求:

data: {
    action: 'getmyfunctionform1',
    postId: <?php echo get_post()->ID; ?>
}

然后在回调函数中使用它来获取元值:

function myfunctionform1() { 
    $postId = filter_input( INPUT_POST, 'postId', FILTER_SANITIZE_NUMBER_INT );
    $uk_asin = get_post_meta( $postId, "wccaf_uk_asin", true );
    // etc.
}

关于javascript - 为什么我无法通过 Ajax 获取 WP 自定义字段值或发布 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52452146/

相关文章:

javascript - Reddit 搜索 API 网址?

javascript - 显示对象的键和值并转换为 html 链接

javascript - "this"单击时更改值

php - OneSignal 群组通知

javascript - 关于 javascript 中 eval() 的问题......为什么它是邪恶的,我如何在不使用它的情况下完成同样的事情?

javascript - 如何在上传前预览动态上传的图片?

javascript - 将状态定义为类中的变量(或属性)是否正确?

php - 如何用教义随机选择

php - 获取MYSQL中的子级别

javascript - 连接API的WebApp与后端渲染的区别