当用户点击外部/联属产品按钮时,将产品添加到订单队列

时间:2015-07-06 09:24:29

标签: php wordpress woocommerce affiliate

我正在使用Woocommerce的Affiliate网站配置。虽然我已经完成了大部分配置和设置。我想在Woocommerce订单队列中添加外部产品作为订单(具有待处理状态),这将允许我跟踪。

所以基本上,我想的方法是在购买产品按钮链接中嵌入一个查询,该链接重定向到外部联盟网站,同时它同时在项目中作为我的Woocommerce列表中的订单执行此操作。我相信调用本身中的一个简单的查询/函数调用应该可以工作,但这是我用Techno-Functional术语说的。 Wordpress略显新鲜。

非常感谢帮助指导同样的事情。然后,这将允许我向用户发送未完成或未决订单的电子邮件。

1 个答案:

答案 0 :(得分:1)

好的,因为我没有收到任何回复,而且在Stackoverflow之前将此视为无效问题。

我开发了自己的插件,它基本上会检查单击外部产品按钮的时间,然后根据Product_ID和当前用户ID执行订单输入,订单状态为待处理。

我的JQuery脚本如下

jQuery(document).ready(function($) {
$(document).off( 'click', '#affiliate' );
$(document).on( 'click', '#affiliate', function() {
//Code Here
var prodid = $("#prodid").text();
alert( prodid );
var odata = {
    'action': 'pending_order',
    security: wp_ajax_eaco.ajaxnonce,
    prod_id: prodid
};

$.post( 
    wp_ajax_eaco.ajaxurl, 
    odata, function(response) {
    alert('Got this from the server: ' + response);
            });
 });
});

我对应的函数调用如下

//Order Call
add_action( 'wp_ajax_pending_order', array( &$this, 'create_order'));
function create_order()
        {
            global $woocommerce, $wp;
            // Security check
            check_ajax_referer( 'ajax_post_validation', 'security' );
            //Getting Product ID
            $id = $_POST['prod_id'];


            // create order
            $address = array(
                    'first_name' => 'Iskandariya',
                    'last_name'  => 'Solutions',
                    'company'    => 'Iskandariya.Solutions',
                    'phone'      => '+91-9999999999',
                    'address_1'  => 'Chandigarh',
                    'address_2'  => 'Mohali,Punjab', 
                    'city'       => 'Chandigarh',
                    'state'      => 'PB',
                    'postcode'   => '160001',
                    'country'    => 'IN'
                );

            $order_data = array(
                    'customer_id'       => get_current_user_id()
                    );

            $order = wc_create_order($order_data);
            $order->add_product( get_product( $id ), 1 ); //(get_product with id and next is for quantity)
            $order->set_address( $address, 'billing' );
            $order->set_address( $address, 'shipping' );
            $order->calculate_totals();
            wp_die();
        }

在某种程度上,谢谢你没有回复它花了我更长的时间,但我学会了为WordPress开发插件以及更多。