2015-02-10 58 views
0

我有一个woocommerce的post meta,用于捕获在使用PHP显示简码时使用的ID。WordPress/WlooCommerce变量没有通过内部函数/钩子传递

正如你可以在这里看到

// Add Preview Button To Product Pages 
add_action('woocommerce_simple_add_to_cart', 'add_preview_button_to_mag_issues'); 
function add_preview_button_to_mag_issues() { 
    if (has_term('Magazine Issues', 'product_cat')){ 
     $fb_prev_issue_sc_var = get_post_meta ($post->ID, 'fb_prev_issue_shortcode', true); // Store Shortcode To Display Preview Flipbook 
     //echo do_shortcode('[real3dflipbook id="2"]'); 
     echo do_shortcode('[real3dflipbook id="' . $fb_prev_issue_sc_var . '"]'); // Print Shortcode To Display Preview Flipbook 
     echo '<a class="real3dflipbook-lightbox button alt">Preview Issue</a>'; // Print Button To Open Lightbox 
    } 
} 

变量$ fb_prev_issue_sc_var不是出于某种原因获得的内容。我已经在我的代码中使用了与之前填充变量相同的精确方法,并且它工作正常,并且它用于显示相同的简码......但它不在“钩子”或函数中。

这里是我现在的储蓄变量

// Preview Issue Shortcode ID 
$woocommerce_fb_prev_issue_shortcode = $_POST['fb_prev_issue_shortcode']; 
if(!empty($woocommerce_fb_prev_issue_shortcode)) 
update_post_meta($post_id, 'fb_prev_issue_shortcode', esc_attr($woocommerce_fb_prev_issue_shortcode)); 

广东话图这一个...

提前感谢!

编辑 注意两者的几行代码都包含在子主题functions.php文件

+1

尝试在add_preview_button_to_mag_issues()中设置$ post global。因为你正试图读取$ post的ID,这可能是未定义的那一点。 – Burimi 2015-02-10 03:43:16

+0

@Burimi ahhhhhh这是我正在寻找的无辜!如果你想发布一个答案,说我会选择你作为最好的答案感谢芽! – kevingilbert100 2015-02-10 04:39:02

+0

刚刚发布了答案,因为它可能对其他用户也有帮助。 – Burimi 2015-02-10 15:44:04

回答

0

你必须把这些变量$post全球性的,因为你试图读取属性未定义对象的ID内。

启用WordPress调试将有助于在这种情况下。