0

などの基本的な詳細を取得しOrder ID、新しい注文が woocommerce に置かれたときに顧客の情報を取得し、それを別の MySQL テーブルに保存したいと考えていますNamePhone

これは私が試しているコードですが、名前と電話ではなく、注文IDをストーミングするだけです。

function add_db($order_id)
{
    // order object (optional but handy)
    global $woocommerce;
    $order = new WC_Order( $order_id );
    mysql_connect("localhost", "root", "root") or die(mysql_error());
    mysql_select_db("wordpress") or die(mysql_error());

    $name = $order->billing_first_name;
    $phone = $order->billing_phone;

    mysql_query("INSERT INTO order_details (order_id, name, phone) VALUES ('$order_id', '$name', '$phone')") or die(mysql_error());
}
add_action( 'woocommerce_new_order', 'add_db' );

必要な機能を得るために私を助けてください。

ありがとう。

4

2 に答える 2

0

wpdb クラスを使用して wordpress データベースにデータを挿入する必要があります。

このようなもの:

function add_db($order_id) {
global $woocommerce;
$order = new WC_Order( $order_id );
$name = $order->billing_first_name;
$phone = $order->billing_phone;

global $wpdb;
$table =  $wpdb->prefix . 'order_details';

$wpdb->insert($table, array( 

'order_id' => $order_id,
'name' => $name, 
'phone' => $phone,


));

add_action( 'woocommerce_new_order', 'add_db' );
于 2013-07-31T10:47:33.663 に答える
0

これは、同様の主題に関する私の検索の最初の結果として出てきたので、私は貢献したいと思いました. 私にとって問題は、テストを実行しているときに(カートの内容が変更された場合でも)、woocommerceが新しい注文を作成するのではなく、未完了の注文を取得して変更していたという事実に関係していたため、「new_order」アクションは機能しませんでしたその後の実行でトリガーします-アクションがまったく機能していないように見えました。

バックエンドの注文タブに移動し、最後の未完了の注文を削除します。次回チェックアウトすると、「new_order」アクションがトリガーされます。

于 2015-07-07T23:04:15.907 に答える