提取WooCommerce属性,并把它在谷歌图书阅读器脚本(Extracting a WooComm

2019-10-21 04:49发布

我将用在我的网站嵌入浏览器谷歌的书籍,运行使用Wordpress CMS和Woocommerce插件。

我的想法是,为每个产品一个Woocommerce属性(这里的一本书)被分配给相关的书籍谷歌图书编号(类似0738531367),然后使用一个方法,这个字符串被插入到观看者的脚本它最简单的形式如下其中,

<script type="text/javascript" src="http://books.google.com/books/previewlib.js"></script>
<script type="text/javascript">
GBS_insertEmbeddedViewer('4rghAwAAQBAJ',600,500);
</script>

现在,我怎样才能从Woocommerce提取此字符串(属性),并把它在浏览器的脚本?


更多的专项说明

这是一本书页 (一WooCommerce产品页)。

该页面提供的书,已经对谷歌图书ID的值的属性。 它可以在“مشخصاتکتاب”选项卡中的最低行被发现。

将这个ID到上面的代码,并把整个修改后的代码在书页的HTML代码后,著名的谷歌图书的嵌入式浏览器与此对应的书,出现在“توضیحناشر”选项卡。

但是,这个过程是耗时的,当我面对要添加的图书数量巨大几乎是不可能的。

这是很简单的。 一旦嵌入在WooCommerce(或主题) 模板页面的浏览器代码。 因此,对于每个书籍的唯一努力就是在预定义的属性定义所谓的书ID。

毕竟,下一个任务:这个ID转移到浏览器的代码。 我认为它可以使用WordPress的钩子,PHP函数等进行处理。 不幸的是搜索网没有结果(包括谷歌图书支持论坛和WordPress支持目录)。

Answer 1:

它可以集成到WC产品meta框 (也见文档 ),但我会展示如何在一个正常的meta框做。

<?php
/**
 * Plugin Name: (SO) Book ID
 */

add_action( 'add_meta_boxes', 'add_box_so_26564103' );
add_action( 'save_post', 'save_so_26564103', 10, 2 );

function add_box_so_26564103() {
    add_meta_box( 
        'sectionid',
        'Book ID',
        'inner_box_so_26564103',
        'product',
        'side',
        'low'
    );
}

function inner_box_so_26564103($post)
{
    wp_nonce_field( plugin_basename( __FILE__ ), 'noncename' );
    $saved = get_post_meta( $post->ID, '_book_id', true);

    printf(
        '<label>Enter the ID <input type="text" name="_book_id" value="%s" /></label>',
        $saved ? $saved : ''
    );

}

function save_so_26564103( $post_id, $post_object ) 
{
      if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) 
          return;

      if ( !wp_verify_nonce( $_POST['noncename'], plugin_basename( __FILE__ ) ) )
          return;

    if ( 'revision' == $post_object->post_type )
        return;

    if ( isset( $_POST['_book_id'] )  )
        update_post_meta( $post_id, '_book_id', $_POST['_book_id'] );
    else 
        delete_post_meta( $post_id, '_book_id' );

}

然后,在你的模板,只是检索元数据:

<script type="text/javascript" src="http://books.google.com/books/previewlib.js"></script>
<script type="text/javascript">
GBS_insertEmbeddedViewer('<?php echo get_post_meta( $post->ID, "_book_id", true); ?>',600,500);
</script>


文章来源: Extracting a WooCommerce Attribute and Put it in Google Book Viewer Script